Function at 0x498d94
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffa4
push ebx
push esi
push edi
mov ebx, edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0x54]
test esi, esi
je 0x498db9
mov eax, esi
xor edx, edx
call fcn.004d2a9c
test al, al
jne 0x498dc8
mov edx, ebx
mov eax, dword [ebp - 4]
call fcn.0049d980
jmp 0x4997ef
mov esi, dword [ebx]
mov eax, dword [0x50c9cc]
cmp esi, dword [eax]
jne 0x498f15
movzx eax, word [ebx + 6]
cmp eax, 0x17
jg 0x498dfc
je 0x498e78
sub eax, 3
je 0x498eea
sub eax, 3
je 0x498e2a
dec eax
je 0x498e0f
jmp 0x4994ec
sub eax, 0x1a
je 0x498ed7
sub eax, 0x22
je 0x498e1b
jmp 0x4994ec
mov dword [ebx + 0xc], 1
jmp 0x4997ef
mov eax, dword [0x50cc98]
mov eax, dword [eax]
mov dword [ebx + 0xc], eax
jmp 0x4997ef
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0x54]
cmp byte [esi + 0x18], 0
je 0x4994ec
mov byte [esi + 0x18], 0
mov eax, esi
call fcn.004d253c
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x54]
mov byte [edx + 0x18], al
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
cmp byte [eax + 0x18], 0
jne 0x4994ec
push 0x585
push 0
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
push eax
call fcn.00407724
jmp 0x4994ec
mov eax, dword [ebp - 4]
add eax, 0x2c
push eax
mov eax, dword [ebp - 4]
add eax, 0x1c
push eax
mov eax, dword [ebp - 4]
add eax, 0x24
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
push eax
mov eax, dword [ebp - 4]
lea ecx, [eax + 0xc]
mov eax, dword [ebp - 4]
lea edx, [eax + 0x3c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
call fcn.00493058
mov eax, dword [ebp - 4]
mov cl, byte [eax + 4]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x4c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
call fcn.00493e28
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
mov ecx, dword [ebp - 4]
xor edx, edx
call fcn.004937b4
jmp 0x4997ef
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
mov eax, dword [eax + 0x24]
mov edx, dword [ebx + 8]
mov dword [edx], eax
jmp 0x4997ef
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
call fcn.004d2528
cmp eax, dword [ebx + 8]
jne 0x4994ec
mov edx, ebx
mov eax, dword [ebp - 4]
call fcn.0049d980
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0xc]
jmp 0x4997ef
mov eax, esi
cmp eax, 0x85
jg 0x498f3b
je 0x49935b
sub eax, 0xf
je 0x499286
sub eax, 5
je 0x4991d4
jmp 0x4994ec
sub eax, 0x317
je 0x498f52
sub eax, 0xacf7
je 0x4991aa
jmp 0x4994ec
mov eax, dword [ebx + 4]
push eax
lea eax, [ebx + 8]
push eax
mov ecx, esi
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x4c]
mov eax, dword [ebp - 4]
call fcn.0049fed0
mov edi, eax
mov dword [ebx + 0xc], edi
cmp edi, 2
je 0x4997ef
mov eax, dword [ebp - 4]
add eax, 0x2c
push eax
mov eax, dword [ebp - 4]
add eax, 0x1c
push eax
mov eax, dword [ebp - 4]
add eax, 0x24
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
push eax
mov eax, dword [ebp - 4]
lea ecx, [eax + 0xc]
mov eax, dword [ebp - 4]
lea edx, [eax + 0x3c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
call fcn.00493058
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
mov byte [eax + 0x18], 0
mov byte [eax + 0x35], 1
mov eax, dword [ebx + 4]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 4]
cmp byte [eax + 0x59], 0
jne 0x498fd0
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
test eax, eax
je 0x4997ef
mov edx, dword [ebp - 4]
mov cl, byte [edx + 4]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x4c]
call fcn.00493e28
mov eax, dword [ebp - 4]
cmp byte [eax + 4], 0
jne 0x499008
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
mov ecx, dword [ebp - 4]
xor edx, edx
call fcn.004937b4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
mov eax, dword [eax + 0x40]
mov edx, dword [eax]
call dword [edx + 0x2c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
mov eax, dword [eax + 0x40]
mov edx, dword [eax]
call dword [edx + 0x20]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
mov eax, dword [eax + 0x40]
call fcn.004284b8
call fcn.00423fec
push eax
push 0
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x80]
push eax
xor ecx, ecx
xor edx, edx
mov eax, dword [ebp - 8]
call fcn.004ca1e4
mov eax, dword [ebx + 8]
push eax
push 0xffffffffffffffff
mov eax, dword [ebp - 8]
push eax
mov ecx, dword [ebx + 4]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x4c]
mov eax, dword [ebp - 4]
call fcn.004949e0
mov dword [ebx + 0xc], eax
mov eax, dword [ebp - 8]
push eax
call fcn.0040723c
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x80]
mov ecx, eax
mov edx, eax
mov eax, dword [ebp - 8]
call fcn.0043d4e0
mov eax, dword [ebp - 4]
mov edi, dword [eax + 0x74]
mov eax, edi
xor ecx, ecx
mov edx, 1
call fcn.00494678
xor edx, edx
mov dl, byte [edi + 6]
imul edx
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
mov eax, dword [eax + 0x40]
mov edx, dword [eax]
call dword [edx + 0x20]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x80]
add edx, edx
sub eax, edx
pop edx
sub eax, edx
push eax
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0x78]
mov eax, esi
xor ecx, ecx
mov edx, 1
call fcn.00494678
xor edx, edx
mov dl, byte [esi + 6]
imul edx
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
mov eax, dword [eax + 0x40]
mov edx, dword [eax]
call dword [edx + 0x2c]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x80]
add edx, edx
sub eax, edx
pop edx
sub eax, edx
push eax
push 0
push 0
mov eax, dword [ebp - 8]
push eax
call fcn.004071dc
push 0
mov eax, dword [ebp - 8]
push eax
push 0x14
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
push eax
call fcn.00407774
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
mov esi, dword [eax + 0x38]
test esi, esi
je 0x49916d
mov eax, esi
mov edx, dword [0x5080a0]
call fcn.00403a8c
test al, al
je 0x49916d
mov eax, dword [esi + 0x218]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
je 0x499181
push 0
mov eax, dword [ebp - 8]
push eax
push 0xf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
push eax
call fcn.00407774
jmp 0x499181
push 0
mov eax, dword [ebp - 8]
push eax
push 0xf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
push eax
call fcn.00407774
push 0x24
mov eax, dword [ebp - 8]
push eax
push 0x318
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
push eax
call fcn.00407774
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 8]
push eax
call fcn.0040722c
jmp 0x4994ec
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
cmp byte [eax + 0x18], 0
jne 0x4994ec
push 0x405
push 0
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
push eax
call fcn.00407724
jmp 0x4994ec
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
push eax
call fcn.00407674
test eax, eax
je 0x4994ec
mov eax, dword [ebp - 4]
cmp byte [eax + 0x90], 0
jne 0x4994ec
mov esi, dword [ebx + 4]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
cmp esi, dword [eax + 0x54]
je 0x499217
lea eax, [ebp - 0x5c]
push eax
push esi
call fcn.0040713c
dec eax
je 0x4997ef
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
call fcn.004d253c
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x54]
mov byte [edx + 0x18], al
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
cmp byte [eax + 0x18], 0
jne 0x4997ef
mov eax, dword [ebp - 4]
cmp byte [eax + 0x59], 0
jne 0x49924c
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0xc]
mov eax, dword [0x50caa4]
cmp dword [eax], 6
jl 0x4994ec
mov eax, dword [0x50c9d4]
cmp byte [eax], 0
je 0x4994ec
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x54]
cmp eax, dword [edx + 0x54]
je 0x4994ec
mov dword [ebx + 0xc], 1
jmp 0x4997ef
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
push eax
call fcn.00407674
test eax, eax
je 0x4994ec
mov eax, dword [ebp - 4]
cmp byte [eax + 0x90], 0
jne 0x4994ec
mov esi, dword [ebx + 4]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
cmp esi, dword [eax + 0x54]
je 0x4992c9
lea eax, [ebp - 0x5c]
push eax
push esi
call fcn.0040713c
dec eax
je 0x4997ef
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
call fcn.004d253c
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x54]
mov byte [edx + 0x18], al
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
cmp byte [eax + 0x18], 0
jne 0x4992ff
mov eax, dword [0x50c9d4]
cmp byte [eax], 0
je 0x499324
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
cmp dword [eax + 0x54], 0
jne 0x499324
lea eax, [ebp - 0x4c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
push eax
call fcn.00407304
lea eax, [ebp - 0x4c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
push eax
call fcn.0040742c
jmp 0x4997ef
mov eax, dword [ebx + 8]
push eax
push 0xffffffffffffffff
mov esi, dword [ebx + 4]
push esi
mov ecx, esi
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x4c]
mov eax, dword [ebp - 4]
call fcn.004949e0
mov dword [ebx + 0xc], eax
mov eax, dword [ebp - 4]
cmp byte [eax + 0x59], 0
jne 0x4994ec
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0xc]
jmp 0x4994ec
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
push eax
call fcn.00407674
test eax, eax
je 0x4994ec
mov eax, dword [ebp - 4]
cmp byte [eax + 0x90], 0
jne 0x4994ec
mov eax, dword [0x50c9d4]
cmp byte [eax], 0
jne 0x4997ef
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
call fcn.004d253c
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x54]
mov byte [edx + 0x18], al
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
cmp byte [eax + 0x18], 0
jne 0x4997ef
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
push eax
call fcn.004075cc
mov dword [ebp - 8], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
mov eax, dword [eax + 0x54]
cmp eax, dword [ebp - 8]
je 0x4993f3
lea eax, [ebp - 0x5c]
push eax
mov eax, dword [ebp - 8]
push eax
call fcn.0040713c
dec eax
jne 0x4993f3
mov eax, dword [ebp - 8]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
push eax
call fcn.0040774c
jmp 0x4997ef
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
cmp byte [eax + 0x35], 0
je 0x499427
mov eax, dword [ebp - 4]
cmp byte [eax + 0x59], 0
jne 0x499410
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0xc]
mov eax, dword [ebp - 4]
mov cl, byte [eax + 4]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x4c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
call fcn.00493e28
mov eax, dword [ebp - 8]
push eax
call fcn.0040723c
mov dword [ebp - 0xc], eax
xor eax, eax
push ebp
push 0x4994e5
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebx + 8]
push eax
push 0xffffffffffffffff
mov eax, dword [ebp - 8]
push eax
mov ecx, dword [ebx + 4]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x4c]
mov eax, dword [ebp - 4]
call fcn.004949e0
mov dword [ebx + 0xc], eax
cmp dword [ebp - 8], 0
je 0x4994ba
mov eax, dword [ebp - 4]
cmp dword [eax + 0x54], 0
je 0x4994ba
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
mov eax, dword [eax + 0x40]
mov edx, dword [eax]
call dword [edx + 0x2c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
mov eax, dword [eax + 0x40]
mov edx, dword [eax]
call dword [edx + 0x20]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
mov eax, dword [eax + 0x40]
call fcn.004284b8
call fcn.00423fec
push eax
push 0
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x80]
push eax
xor ecx, ecx
xor edx, edx
mov eax, dword [ebp - 8]
call fcn.004ca1e4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4997ef
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 8]
push eax
call fcn.0040722c
mov eax, dword [ebp - 8]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
push eax
call fcn.0040774c
ret
mov edx, ebx
mov eax, dword [ebp - 4]
call fcn.0049d980
mov eax, dword [ebx]
cmp eax, 0x180
jge 0x499544
cmp eax, 0x30
jg 0x499528
je 0x499609
sub eax, 5
je 0x499625
sub eax, 2
je 0x4996d6
dec eax
je 0x49976f
jmp 0x4997ef
sub eax, 0xc2
je 0x4995fa
add eax, 0xffffffc2
sub eax, 2
jb 0x499609
jmp 0x4997ef
cmp eax, 0x197
jg 0x499572
je 0x4995fa
add eax, 0xfffffe80
sub eax, 2
jb 0x4995fa
sub eax, 4
je 0x4995eb
sub eax, 8
je 0x499593
jmp 0x4997ef
sub eax, 0x200
je 0x499653
dec eax
je 0x499609
add eax, 0xffff4501
sub eax, 2
jb 0x499609
jmp 0x4997ef
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
mov esi, dword [eax + 0x38]
test esi, esi
je 0x4997ef
mov eax, esi
mov edx, dword [0x5080a0]
call fcn.00403a8c
test al, al
je 0x4997ef
cmp dword [ebx + 0xc], 0
jne 0x4997ef
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + 0x218]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jne 0x4997ef
mov dword [ebx + 0xc], 0xffffffff
jmp 0x4997ef
mov dl, 1
mov eax, dword [ebp - 4]
call fcn.00493d5c
jmp 0x4997ef
mov dl, 1
mov eax, dword [ebp - 4]
call fcn.00493d5c
jmp 0x4997ef
mov eax, dword [ebp - 4]
cmp byte [eax + 0x58], 0
jne 0x4997ef
mov dl, 1
mov eax, dword [ebp - 4]
call fcn.00493d5c
jmp 0x4997ef
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
push eax
call fcn.00407674
test eax, eax
je 0x4997ef
push 0
push 0
push 0x85
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
push eax
call fcn.00407774
jmp 0x4997ef
mov eax, dword [0x50cbd4]
cmp dword [eax], 0
je 0x4997ef
mov eax, dword [0x50cbd4]
mov eax, dword [eax]
test byte [eax + 0x1c], 0x10
jne 0x4997ef
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
push eax
call fcn.0040766c
test eax, eax
je 0x4997ef
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
mov edx, dword [0x50cbd4]
mov edx, dword [edx]
cmp eax, dword [edx + 0x78]
je 0x4996a7
mov edx, eax
mov eax, dword [0x50cbd4]
mov eax, dword [eax]
call fcn.004df6b8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
call fcn.004d253c
test al, al
jne 0x4997ef
call fcn.0040747c
test eax, eax
je 0x4997ef
mov dl, 1
mov eax, dword [ebp - 4]
call fcn.00493d5c
jmp 0x4997ef
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
call fcn.00492fa0
test al, al
je 0x4997ef
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
cmp dword [eax + 0x38], 0
je 0x4997ef
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
mov eax, dword [eax + 0x38]
mov edx, dword [0x43ab04]
call fcn.00403a8c
test al, al
je 0x4997ef
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
mov eax, dword [eax + 0x38]
mov si, 0xffb8
call fcn.00403afc
test al, al
je 0x4997ef
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
mov eax, dword [eax + 0x38]
cmp byte [eax + 0x1a4], 0
je 0x4997ef
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x54]
mov byte [ebx + 0x35], 1
mov byte [ebx + 0x4c], 1
push 0
push 0
push 0x85
mov eax, dword [ebx + 0x38]
call fcn.004453d4
push eax
call fcn.00407774
jmp 0x4997ef
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
call fcn.00492fa0
test al, al
je 0x4997ef
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
cmp dword [eax + 0x38], 0
je 0x4997ef
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
mov eax, dword [eax + 0x38]
mov edx, dword [0x43ab04]
call fcn.00403a8c
test al, al
je 0x4997ef
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
mov eax, dword [eax + 0x38]
mov si, 0xffb8
call fcn.00403afc
test al, al
je 0x4997ef
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
mov eax, dword [eax + 0x38]
cmp byte [eax + 0x1a4], 0
je 0x4997ef
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x54]
mov byte [ebx + 0x35], 1
mov byte [ebx + 0x4c], 0
push 0
push 0
push 0x85
mov eax, dword [ebx + 0x38]
call fcn.004453d4
push eax
call fcn.00407774
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret