Function at 0x1005244
Capabilities:
Link many functions at runtime

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x464
mov eax, dword [0x100b080]
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x438], eax
mov eax, dword [ebp + 0xc]
push ebx
mov bx, word [eax]
mov dword [ebp - 0x40c], ecx
xor ecx, ecx
cmp bx, cx
mov dword [ebp - 0x420], eax
mov dword [ebp - 0x43c], ecx
mov dword [ebp - 0x414], ecx
mov dword [ebp - 0x41c], ecx
je 0x10057dc
push esi
push edi
jmp 0x1004e29
mov ecx, dword [ebp - 0x44c]
push 2
pop edi
add dword [ebp - 0x420], edi
cmp dword [ebp - 0x41c], 0
jl 0x10057da
push reloc.KERNEL32.dll_FindNextChangeNotification
pop esi
cmp bx, si
jb 0x1004e5c
cmp bx, 0x78
ja 0x1004e5c
movzx eax, bx
movsx eax, byte [eax + 0x10018f8]
and eax, 0xf
jmp 0x1004e5e
xor eax, eax
movsx eax, byte [ecx + eax*8 + 0x1001918]
push 7
sar eax, 4
pop ecx
cmp eax, ecx
mov dword [ebp - 0x44c], eax
ja case.default.0x1004e7a
jmp dword [eax*4 + 0x10057ed]
xor eax, eax
or dword [ebp - 0x410], 0xffffffff
mov dword [ebp - 0x450], eax
mov dword [ebp - 0x448], eax
mov dword [ebp - 0x428], eax
mov dword [ebp - 0x424], eax
mov dword [ebp - 0x408], eax
mov dword [ebp - 0x42c], eax
jmp case.default.0x1004e7a
movzx eax, bx
sub eax, esi
je 0x1004f01
sub eax, 3
je 0x1004ef5
sub eax, 8
je 0x1004ee9
sub eax, edi
je 0x1004edd
sub eax, 3
jne case.default.0x1004e7a
or dword [ebp - 0x408], 8
jmp case.default.0x1004e7a
or dword [ebp - 0x408], 4
jmp case.default.0x1004e7a
or dword [ebp - 0x408], 1
jmp case.default.0x1004e7a
or byte [ebp - 0x408], 0x80
jmp case.default.0x1004e7a
or dword [ebp - 0x408], edi
jmp case.default.0x1004e7a
cmp bx, 0x2a
jne 0x1004f42
add dword [ebp - 0x40c], 4
mov eax, dword [ebp - 0x40c]
mov eax, dword [eax - 4]
test eax, eax
mov dword [ebp - 0x428], eax
jge case.default.0x1004e7a
or dword [ebp - 0x408], 4
neg dword [ebp - 0x428]
jmp case.default.0x1004e7a
mov eax, dword [ebp - 0x428]
movzx ecx, bx
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2 - 0x30]
mov dword [ebp - 0x428], eax
jmp case.default.0x1004e7a
and dword [ebp - 0x410], 0
jmp case.default.0x1004e7a
cmp bx, 0x2a
jne 0x1004f99
add dword [ebp - 0x40c], 4
mov eax, dword [ebp - 0x40c]
mov eax, dword [eax - 4]
test eax, eax
mov dword [ebp - 0x410], eax
jge case.default.0x1004e7a
or dword [ebp - 0x410], 0xffffffff
jmp case.default.0x1004e7a
mov eax, dword [ebp - 0x410]
movzx ecx, bx
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2 - 0x30]
mov dword [ebp - 0x410], eax
jmp case.default.0x1004e7a
movzx eax, bx
cmp eax, 0x49
je 0x1004ff2
cmp eax, 0x68
je 0x1004fe7
cmp eax, 0x6c
je 0x1004fdb
cmp eax, 0x77
jne case.default.0x1004e7a
or byte [ebp - 0x407], 8
jmp case.default.0x1004e7a
or dword [ebp - 0x408], 0x10
jmp case.default.0x1004e7a
or dword [ebp - 0x408], esi
jmp case.default.0x1004e7a
mov eax, dword [ebp - 0x420]
mov ax, word [eax]
cmp ax, 0x36
jne 0x1005021
mov ecx, dword [ebp - 0x420]
cmp word [ecx + 2], 0x34
jne 0x1005021
add dword [ebp - 0x420], 4
or byte [ebp - 0x407], 0x80
jmp case.default.0x1004e7a
cmp ax, 0x33
jne 0x1005047
mov ecx, dword [ebp - 0x420]
cmp word [ecx + 2], 0x32
jne 0x1005047
add dword [ebp - 0x420], 4
and byte [ebp - 0x407], 0x7f
jmp case.default.0x1004e7a
cmp ax, 0x64
je case.default.0x1004e7a
cmp ax, 0x69
je case.default.0x1004e7a
cmp ax, 0x6f
je case.default.0x1004e7a
cmp ax, 0x75
je case.default.0x1004e7a
cmp ax, 0x78
je case.default.0x1004e7a
cmp ax, 0x58
je case.default.0x1004e7a
and dword [ebp - 0x44c], 0
mov eax, dword [ebp - 0x438]
push ebx
lea esi, [ebp - 0x41c]
mov dword [ebp - 0x42c], 1
call fcn.01004d2f
jmp 0x10057c7
movzx eax, bx
cmp eax, 0x67
jg 0x1005401
cmp eax, 0x65
jge 0x1005194
cmp eax, 0x58
jg 0x1005236
je 0x1005488
sub eax, 0x43
je 0x10051c3
sub eax, edi
je 0x1005188
sub eax, edi
je 0x1005188
sub eax, 0xc
jne 0x1005645
test word [ebp - 0x408], 0x830
jne 0x1005102
or dword [ebp - 0x408], esi
mov edx, dword [ebp - 0x410]
cmp edx, 0xffffffff
jne 0x1005112
mov edx, 0x7fffffff
add dword [ebp - 0x40c], 4
test byte [ebp - 0x408], 0x20
mov eax, dword [ebp - 0x40c]
mov eax, dword [eax - 4]
mov dword [ebp - 0x418], eax
je 0x1005443
test eax, eax
jne 0x1005144
mov eax, dword [0x100b578]
mov dword [ebp - 0x418], eax
and dword [ebp - 0x414], 0
test edx, edx
mov eax, dword [ebp - 0x418]
jle 0x1005645
mov cl, byte [eax]
test cl, cl
je 0x1005645
mov esi, dword [0x100b58c]
movzx ecx, cl
test byte [esi + ecx*2 + 1], 0x80
je 0x1005174
inc eax
inc eax
inc dword [ebp - 0x414]
cmp dword [ebp - 0x414], edx
jl 0x1005159
jmp 0x1005645
mov dword [ebp - 0x450], 1
add ebx, esi
or dword [ebp - 0x408], 0x40
cmp dword [ebp - 0x410], 0
lea edi, [ebp - 0x404]
mov dword [ebp - 0x418], edi
jge 0x1005309
mov dword [ebp - 0x410], 6
jmp 0x1005369
test word [ebp - 0x408], 0x830
jne 0x10051d4
or dword [ebp - 0x408], esi
add dword [ebp - 0x40c], 4
mov eax, dword [ebp - 0x40c]
movzx eax, word [eax - 4]
xor esi, esi
inc esi
test byte [ebp - 0x408], 0x20
mov dword [ebp - 0x42c], esi
mov dword [ebp - 0x454], eax
je 0x1005284
push dword [0x100b580]
mov byte [ebp - 0x434], al
lea eax, [ebp - 0x434]
push eax
lea eax, [ebp - 0x404]
push eax
mov byte [ebp - 0x433], 0
call fcn.01007414
add esp, 0xc
test eax, eax
jge 0x100528b
mov dword [ebp - 0x448], esi
jmp 0x100528b
sub eax, 0x5a
je 0x10052a2
sub eax, 9
je 0x10051d4
dec eax
jne 0x1005645
or dword [ebp - 0x408], 0x40
mov dword [ebp - 0x414], 0xa
mov ebx, dword [ebp - 0x408]
mov esi, 0x8000
test esi, ebx
je 0x1005528
mov ecx, dword [ebp - 0x40c]
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
add ecx, 8
mov dword [ebp - 0x40c], ecx
jmp 0x1005556
mov word [ebp - 0x404], ax
lea eax, [ebp - 0x404]
mov dword [ebp - 0x418], eax
mov dword [ebp - 0x414], esi
jmp 0x1005645
add dword [ebp - 0x40c], 4
mov eax, dword [ebp - 0x40c]
mov eax, dword [eax - 4]
test eax, eax
je 0x10052ef
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x10052ef
test byte [ebp - 0x407], 8
movsx eax, word [eax]
mov dword [ebp - 0x418], ecx
je 0x10052e3
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0x42c], 1
jmp 0x100563f
and dword [ebp - 0x42c], 0
jmp 0x100563f
mov eax, dword [0x100b578]
mov dword [ebp - 0x418], eax
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10052fd
jmp 0x10053fa
jne 0x100531d
cmp bx, 0x67
jne 0x1005369
mov dword [ebp - 0x410], 1
jmp 0x1005369
mov eax, 0x200
cmp dword [ebp - 0x410], eax
jle 0x1005330
mov dword [ebp - 0x410], eax
mov esi, 0xa3
cmp dword [ebp - 0x410], esi
jle 0x1005369
mov eax, dword [ebp - 0x410]
add eax, 0x15d
push eax
call fcn.0100637c
test eax, eax
pop ecx
mov dword [ebp - 0x43c], eax
je 0x1005363
mov dword [ebp - 0x418], eax
mov edi, eax
jmp 0x1005369
mov dword [ebp - 0x410], esi
mov eax, dword [ebp - 0x40c]
mov ecx, dword [eax]
push dword [ebp - 0x450]
add eax, 8
push dword [ebp - 0x410]
mov dword [ebp - 0x40c], eax
mov eax, dword [eax - 4]
mov dword [ebp - 0x460], eax
movsx eax, bl
push eax
lea eax, [ebp - 0x464]
push edi
push eax
mov dword [ebp - 0x464], ecx
call dword [0x100b1d0]
mov esi, dword [ebp - 0x408]
add esp, 0x14
and esi, 0x80
je 0x10053c9
cmp dword [ebp - 0x410], 0
jne 0x10053c9
push edi
call dword [0x100b1dc]
pop ecx
cmp bx, 0x67
jne 0x10053db
test esi, esi
jne 0x10053db
push edi
call dword [0x100b1d4]
pop ecx
cmp byte [edi], 0x2d
jne 0x10053ee
or byte [ebp - 0x407], 1
inc edi
mov dword [ebp - 0x418], edi
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10053f3
sub eax, edx
jmp 0x100563f
sub eax, 0x69
je 0x1005247
sub eax, 5
je 0x10054ec
dec eax
je 0x10054c9
dec eax
je 0x100547e
sub eax, 3
je 0x1005102
sub eax, edi
je 0x100524e
sub eax, 3
jne 0x1005645
mov dword [ebp - 0x440], 0x27
jmp 0x100548e
test eax, eax
jne 0x1005452
mov eax, dword [0x100b57c]
mov dword [ebp - 0x418], eax
mov eax, dword [ebp - 0x418]
mov dword [ebp - 0x42c], 1
jmp 0x100546d
dec edx
cmp word [eax], 0
je 0x1005471
add eax, edi
test edx, edx
jne 0x1005464
sub eax, dword [ebp - 0x418]
sar eax, 1
jmp 0x100563f
mov dword [ebp - 0x410], 8
mov dword [ebp - 0x440], ecx
test byte [ebp - 0x408], 0x80
mov dword [ebp - 0x414], 0x10
je 0x1005258
mov eax, dword [ebp - 0x440]
add eax, 0x51
mov word [ebp - 0x430], 0x30
mov word [ebp - 0x42e], ax
mov dword [ebp - 0x424], edi
jmp 0x1005258
test byte [ebp - 0x408], 0x80
mov dword [ebp - 0x414], 8
je 0x1005258
or byte [ebp - 0x407], 2
jmp 0x1005258
add dword [ebp - 0x40c], 4
test byte [ebp - 0x408], 0x20
mov eax, dword [ebp - 0x40c]
mov eax, dword [eax - 4]
je 0x1005511
mov cx, word [ebp - 0x41c]
mov word [eax], cx
jmp 0x1005519
mov ecx, dword [ebp - 0x41c]
mov dword [eax], ecx
mov dword [ebp - 0x448], 1
jmp 0x10057ac
add dword [ebp - 0x40c], 4
test bl, 0x20
mov eax, dword [ebp - 0x40c]
je 0x100554c
test bl, 0x40
je 0x1005546
movsx eax, word [eax - 4]
cdq
jmp 0x1005556
movzx eax, word [eax - 4]
jmp 0x1005543
test bl, 0x40
mov eax, dword [eax - 4]
jne 0x1005543
xor edx, edx
test bl, 0x40
je 0x1005573
test edx, edx
jg 0x1005573
jl 0x1005565
test eax, eax
jae 0x1005573
neg eax
adc edx, 0
neg edx
or byte [ebp - 0x407], 1
test dword [ebp - 0x408], esi
mov ebx, eax
mov edi, edx
jne 0x1005581
xor edi, edi
cmp dword [ebp - 0x410], 0
jge 0x1005596
mov dword [ebp - 0x410], 1
jmp 0x10055b0
and dword [ebp - 0x408], 0xfffffff7
mov eax, 0x200
cmp dword [ebp - 0x410], eax
jle 0x10055b0
mov dword [ebp - 0x410], eax
mov eax, ebx
or eax, edi
jne 0x10055bd
and dword [ebp - 0x424], 0
lea esi, [ebp - 0x205]
mov eax, dword [ebp - 0x410]
dec dword [ebp - 0x410]
test eax, eax
jg 0x10055d9
mov eax, ebx
or eax, edi
je 0x1005606
mov eax, dword [ebp - 0x414]
cdq
push edx
push eax
push edi
push ebx
call fcn.010074f0
add ecx, 0x30
cmp ecx, 0x39
mov dword [ebp - 0x458], ebx
mov ebx, eax
mov edi, edx
jle 0x1005601
add ecx, dword [ebp - 0x440]
mov byte [esi], cl
dec esi
jmp 0x10055c3
lea eax, [ebp - 0x205]
sub eax, esi
inc esi
test byte [ebp - 0x407], 2
mov dword [ebp - 0x414], eax
mov dword [ebp - 0x418], esi
je 0x1005645
mov ecx, esi
cmp byte [ecx], 0x30
jne 0x100562f
test eax, eax
jne 0x1005645
dec dword [ebp - 0x418]
mov ecx, dword [ebp - 0x418]
mov byte [ecx], 0x30
inc eax
mov dword [ebp - 0x414], eax
cmp dword [ebp - 0x448], 0
jne 0x10057ac
mov eax, dword [ebp - 0x408]
test al, 0x40
je 0x1005692
test ah, 1
je 0x100566c
mov word [ebp - 0x430], 0x2d
jmp 0x1005688
test al, 1
je 0x100567b
mov word [ebp - 0x430], 0x2b
jmp 0x1005688
test al, 2
je 0x1005692
mov word [ebp - 0x430], reloc.KERNEL32.dll_FindNextChangeNotification
mov dword [ebp - 0x424], 1
mov ebx, dword [ebp - 0x428]
sub ebx, dword [ebp - 0x424]
sub ebx, dword [ebp - 0x414]
test byte [ebp - 0x408], 0xc
jne 0x10056c4
push dword [ebp - 0x438]
lea eax, [ebp - 0x41c]
push ebx
push reloc.KERNEL32.dll_FindNextChangeNotification
call fcn.01004d5f
add esp, 0xc
push dword [ebp - 0x424]
mov edi, dword [ebp - 0x438]
lea eax, [ebp - 0x41c]
lea ecx, [ebp - 0x430]
call fcn.01004d8b
test byte [ebp - 0x408], 8
pop ecx
je 0x1005706
test byte [ebp - 0x408], 4
jne 0x1005706
push edi
push ebx
push 0x30
lea eax, [ebp - 0x41c]
call fcn.01004d5f
add esp, 0xc
cmp dword [ebp - 0x42c], 0
jne 0x1005774
mov eax, dword [ebp - 0x414]
test eax, eax
jle 0x1005774
mov edi, dword [ebp - 0x418]
mov dword [ebp - 0x444], eax
push dword [0x100b580]
dec dword [ebp - 0x444]
lea eax, [ebp - 0x454]
push edi
push eax
call fcn.01007414
add esp, 0xc
test eax, eax
mov dword [ebp - 0x458], eax
jle 0x100578c
push dword [ebp - 0x454]
mov eax, dword [ebp - 0x438]
lea esi, [ebp - 0x41c]
call fcn.01004d2f
add edi, dword [ebp - 0x458]
cmp dword [ebp - 0x444], 0
pop ecx
jg 0x1005725
jmp 0x100578c
push dword [ebp - 0x414]
mov ecx, dword [ebp - 0x418]
lea eax, [ebp - 0x41c]
call fcn.01004d8b
pop ecx
test byte [ebp - 0x408], 4
je 0x10057ac
push dword [ebp - 0x438]
lea eax, [ebp - 0x41c]
push ebx
push reloc.KERNEL32.dll_FindNextChangeNotification
call fcn.01004d5f
add esp, 0xc
cmp dword [ebp - 0x43c], 0
je case.default.0x1004e7a
push dword [ebp - 0x43c]
call fcn.010062b7
and dword [ebp - 0x43c], 0
pop ecx
mov eax, dword [ebp - 0x420]
mov bx, word [eax]
test bx, bx
jne 0x1004e23
pop edi
pop esi
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x41c]
pop ebx
call fcn.010039ea
leave
ret