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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xf4
push ebx
xor ebx, ebx
cmp dword [ebp + 0x1c], 0xa
push esi
mov dword [esp + 0xc], ebx
push edi
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ebx
jne 0x4957c2
mov ecx, dword [ebp + 0x14]
lea eax, [ecx + 0xc]
mov esi, eax
mov dword [esp + 0x44], eax
lea eax, [ecx + 8]
mov dword [esp + 0x48], eax
mov eax, dword [eax]
shr eax, 1
add eax, eax
mov dword [esp + 0x54], ecx
add ecx, 4
mov word [esp + 0x3c], ax
mov word [esp + 0x3e], ax
mov eax, dword [ecx]
cmp eax, ebx
mov dword [esp + 0x38], ebx
mov word [esp + 0x34], bx
mov word [esp + 0x36], bx
mov dword [esp + 0x40], esi
mov dword [esp + 0x14], ecx
je 0x4951be
mov edi, dword [ebp + 8]
lea ecx, [esp + 0x24]
push ecx
push eax
mov eax, edi
mov dword [esp + 0x30], ebx
mov word [esp + 0x2c], bx
mov word [esp + 0x2e], bx
call fcn.0049ad00
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
push edx
push eax
lea esi, [esp + 0x3c]
call fcn.005055f0
push 0x100cf980
lea ecx, [esp + 0x64]
push ecx
call dword [0x100ef7e0]
lea ebx, [esp + 0x60]
call fcn.005056b0
lea ebx, [esp + 0x3c]
call fcn.005056b0
lea eax, [esp + 0x24]
call fcn.00505660
jmp 0x495248
lea edx, [esp + 0x3c]
call fcn.00505440
test eax, eax
je 0x4951df
mov edx, dword [esp + 0x3c]
push esi
push edx
lea esi, [esp + 0x3c]
call fcn.005055f0
mov edi, dword [ebp + 8]
jmp 0x49524a
mov ecx, dword [ebp + 0xc]
lea eax, [esp + 0x24]
push eax
mov eax, dword [ebp + 8]
push ecx
mov dword [esp + 0x30], ebx
mov word [esp + 0x2c], bx
mov word [esp + 0x2e], bx
call fcn.0049ad00
lea edx, [esp + 0x24]
call fcn.004abb00
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
push edx
push eax
lea esi, [esp + 0x3c]
call fcn.005055f0
push 0x100cf980
lea ecx, [esp + 0x64]
push ecx
call dword [0x100ef7e0]
lea ebx, [esp + 0x60]
call fcn.005056b0
lea ebx, [esp + 0x3c]
call fcn.005056b0
lea eax, [esp + 0x24]
call fcn.00505660
mov edi, dword [ebp + 8]
xor ebx, ebx
mov ecx, dword [edi + 0x74]
mov edx, dword [ecx]
mov eax, dword [edx + 0x14]
call eax
test eax, eax
je 0x495303
lea ecx, [esp + 0x3c]
push ecx
mov eax, edi
mov dword [esp + 0x44], ebx
mov word [esp + 0x40], bx
mov word [esp + 0x42], bx
call fcn.004a0420
cmp word [esp + 0x3c], bx
je 0x4952fa
lea eax, [esp + 0x3c]
lea esi, [esp + 0x34]
call fcn.00505900
test eax, eax
jne 0x4952fa
mov ecx, dword [ebp + 8]
lea edx, [esp + 0x24]
push edx
mov eax, esi
mov dword [esp + 0x2c], ebx
mov word [esp + 0x28], bx
mov word [esp + 0x2a], bx
call fcn.0048d910
movzx ebx, word [esp + 0x24]
mov eax, ebx
shr eax, 1
lea edi, [eax + eax + 0xe]
lea esi, [esp + 0x58]
call fcn.004775d0
mov esi, dword [esp + 0x58]
mov ecx, dword [ebp + 0x14]
mov dl, byte [ecx]
mov eax, dword [esp + 0x28]
push ebx
push eax
lea ecx, [esi + 0xc]
push ecx
mov byte [esi], dl
mov dword [esi + 4], 0
mov dword [esi + 8], ebx
call dword [0x100ef7ec]
lea eax, [esp + 0x24]
mov dword [ebp + 0x18], edi
mov dword [ebp + 0x14], esi
call fcn.00505660
mov edi, dword [ebp + 8]
xor ebx, ebx
lea eax, [esp + 0x3c]
call fcn.00505660
mov edx, dword [ebp + 0xc]
lea eax, [esp + 0x4c]
lea esi, [edi + 0xc4]
push eax
mov eax, esi
mov dword [esp + 0x50], edx
call fcn.004f9350
test eax, eax
je 0x4955f1
push 4
lea ecx, [esp + 0x20]
push ecx
call dword [0x100ef7e8]
lea edx, [esp + 0x1c]
push edx
lea eax, [ebp + 0xc]
push eax
mov eax, esi
call fcn.004a2ca0
test eax, eax
je 0x4955e1
push 4
lea ecx, [esp + 0x24]
push ecx
call dword [0x100ef7e8]
mov eax, dword [esp + 0x1c]
mov edx, dword [eax]
mov edx, dword [edx]
lea ecx, [esp + 0x20]
push ecx
push 0x100cfae8
push eax
call edx
test eax, eax
jne 0x4955d1
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx]
mov eax, dword [eax + 0x4c]
lea edx, [esp + 0x2c]
push edx
call eax
mov ecx, dword [esp + 0x14]
cmp dword [ecx], ebx
je 0x49541c
push 4
lea edx, [esp + 0x18]
push edx
call dword [0x100ef7e8]
lea eax, [esp + 0x14]
push eax
lea ecx, [ebp + 0xc]
push ecx
mov eax, esi
call fcn.004a2ca0
test eax, eax
je 0x49540e
push 4
lea edx, [esp + 0x50]
push edx
call dword [0x100ef7e8]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
lea edx, [esp + 0x4c]
push edx
push 0x100cfae8
push eax
mov eax, dword [ecx]
call eax
test eax, eax
jne 0x495405
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx]
mov edx, dword [edx + 0x4c]
lea eax, [esp + 0x44]
push eax
call edx
mov ecx, dword [eax]
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
mov esi, dword [esp + 0x2c]
call edx
mov eax, dword [esi]
mov edx, dword [eax + 0xc]
mov ecx, esi
call edx
lea esi, [esp + 0x44]
call fcn.004c5d90
lea esi, [esp + 0x4c]
call fcn.004c5d90
lea esi, [esp + 0x14]
call fcn.004c5d90
jmp 0x4955c1
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x28], eax
mov eax, dword [ecx]
shr eax, 1
add eax, eax
lea edx, [esp + 0x24]
mov word [esp + 0x24], ax
mov word [esp + 0x26], ax
call fcn.00505440
test eax, eax
je 0x4955c1
lea eax, [esp + 0xa0]
push eax
lea edx, [esp + 0x28]
lea ecx, [esp + 0x70]
mov dword [esp + 0x78], edx
mov edx, dword [edi + 0x74]
push ecx
push edx
mov eax, edi
mov dword [esp + 0xb0], ebx
mov word [esp + 0xac], bx
mov word [esp + 0xae], bx
mov dword [esp + 0xb4], ebx
mov dword [esp + 0xb8], ebx
mov dword [esp + 0x78], 0x18
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x84], 0x40
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], ebx
call fcn.0049bf30
mov eax, dword [esp + 0xb0]
mov esi, dword [eax + 8]
cmp esi, ebx
mov dword [esp + 0x14], esi
je 0x4954cd
mov ecx, dword [esi]
mov edx, dword [ecx + 4]
push esi
call edx
mov eax, dword [esp + 0x2c]
mov edx, dword [esi]
mov dword [esp + 0x4c], eax
mov eax, dword [edx + 0xc]
mov ecx, esi
call eax
mov ecx, dword [esp + 0x4c]
mov edx, dword [ecx]
mov esi, eax
mov eax, dword [edx + 0xc]
call eax
cmp esi, eax
lea esi, [esp + 0x14]
sete byte [esp + 0x1b]
call fcn.004c5d90
cmp byte [esp + 0x1b], 0
je 0x4955b5
lea eax, [esp + 0x6c]
lea ecx, [esp + 0xb4]
call fcn.00484340
mov ecx, dword [eax]
mov dword [esp + 0x3c], ecx
mov edx, dword [eax + 4]
push 8
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x68]
push ecx
mov dword [esp + 0x4c], edx
call dword [0x100ef7ec]
mov eax, dword [esp + 0x54]
movzx eax, byte [eax]
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx]
mov edx, dword [edx + 0x84]
push eax
lea eax, [esp + 0x64]
push eax
call edx
mov edi, eax
cmp edi, 0x80004001
je 0x4955b2
lea eax, [esp + 0xa0]
call fcn.0048b140
lea esi, [esp + 0x2c]
call fcn.004c5d90
lea esi, [esp + 0x20]
call fcn.004c5d90
lea esi, [esp + 0x1c]
call fcn.004c5d90
lea eax, [esp + 0x34]
call fcn.00505660
lea esi, [esp + 0x58]
call fcn.00472330
cmp edi, ebx
jne 0x4955a2
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov eax, edi
and eax, 0xefffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov edi, dword [ebp + 8]
lea eax, [esp + 0xa0]
call fcn.0048b140
mov eax, dword [esp + 0x2c]
cmp eax, ebx
je 0x4955d1
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esp + 0x20]
cmp eax, ebx
je 0x4955e1
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esp + 0x1c]
cmp eax, ebx
je 0x4955f1
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp + 0xc]
lea ecx, [esp + 0x4c]
mov dword [esp + 0x4c], eax
push ecx
lea eax, [edi + 0xc4]
call fcn.004f9350
test eax, eax
jne 0x495691
lea edx, [esp + 0x34]
push edx
lea esi, [esp + 0xe0]
mov dword [esp + 0x14], 1
call fcn.0047a5e0
mov eax, dword [eax]
add esp, 4
mov ebx, eax
push 1
mov eax, edi
call fcn.004981a0
test eax, eax
jne 0x49568f
lea eax, [esp + 0x34]
push eax
lea esi, [esp + 0x88]
mov dword [esp + 0x14], 7
call fcn.0047a5e0
mov eax, dword [eax]
lea ecx, [esp + 0x70]
add esp, 4
push ecx
call fcn.0053d090
mov eax, dword [eax]
add esp, 4
mov ebx, eax
push 1
mov eax, edi
call fcn.004981a0
test eax, eax
jne 0x49568f
mov eax, dword [edi + 0x6c]
push 1
call fcn.00524e20
xor ebx, ebx
test eax, eax
jne 0x495691
mov byte [esp + 0x1b], al
jmp 0x495696
xor ebx, ebx
mov byte [esp + 0x1b], 1
test byte [esp + 0x10], 4
je 0x4956bb
mov eax, dword [esp + 0x6c]
and dword [esp + 0x10], 0xfffffffb
cmp eax, ebx
je 0x4956bb
call fcn.00472510
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], ebx
test byte [esp + 0x10], 2
je 0x4956ec
mov eax, dword [esp + 0x84]
and dword [esp + 0x10], 0xfffffffd
cmp eax, ebx
je 0x4956ec
call fcn.00472510
mov dword [esp + 0x84], ebx
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], ebx
test byte [esp + 0x10], 1
je 0x495703
mov eax, dword [esp + 0xdc]
cmp eax, ebx
je 0x495703
call fcn.00472510
cmp byte [esp + 0x1b], 0
je 0x4957b7
lea eax, [esp + 0xa0]
push eax
lea edx, [esp + 0x38]
push edi
lea eax, [esp + 0x74]
mov dword [esp + 0x74], 0x18
mov dword [esp + 0x78], ebx
mov dword [esp + 0x80], 0x40
mov dword [esp + 0x7c], edx
mov dword [esp + 0x84], ebx
mov dword [esp + 0x88], ebx
call fcn.0049bee0
mov ecx, dword [esp + 0x54]
neg eax
sbb eax, eax
add eax, 1
cmp byte [ecx], 0
jne 0x495785
cmp eax, ebx
je 0x495785
lea eax, [esp + 0x34]
call fcn.00505660
mov eax, dword [esp + 0x58]
cmp eax, ebx
je 0x495777
call fcn.00472510
mov eax, 0xc0000035
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov eax, dword [ebp + 0xc]
lea edx, [esp + 0x34]
push edx
push eax
push edi
call fcn.0049b0c0
mov esi, eax
lea eax, [esp + 0x34]
call fcn.00505660
mov eax, dword [esp + 0x58]
cmp eax, ebx
je 0x4957ac
call fcn.00472510
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
lea eax, [esp + 0x34]
call fcn.00505660
jmp 0x4957c5
mov edi, dword [ebp + 8]
mov eax, dword [ebp + 0x1c]
mov esi, dword [ebp + 0x18]
add eax, 0xfffffffc
cmp eax, 0x1a
ja 0x495fd0
movzx ecx, byte [eax + 0x1002508c]
jmp dword [ecx*4 + 0x10025070]
push 4
lea ecx, [esp + 0x50]
push ecx
call dword [0x100ef7e8]
lea edx, [esp + 0x4c]
push edx
lea eax, [ebp + 0xc]
push eax
lea eax, [edi + 0xc4]
call fcn.004a2ca0
test eax, eax
je 0x496000
mov dword [esp + 0x10], ebx
mov edi, 0xc0000003
jmp 0x49600c
mov edi, dword [esp + 0x14]
mov dword [esp + 0x10], 1
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x496024
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0x4c], 0
cmp dword [esp + 0x10], 0
je 0x496056
mov eax, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x18]
mov ecx, dword [0x100ef48c]
push eax
mov eax, dword [ebp + 0x14]
push edx
mov edx, dword [ebp + 0x10]
push eax
mov eax, dword [ebp + 0xc]
add ecx, 0x250
push edx
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 0x24]
call eax
call eax
mov edi, eax
mov eax, dword [esp + 0x58]
test eax, eax
je 0x496063
call fcn.00472510
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18