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

Disassembly:
sub esp, 0x58
cmp dword [0x1023d0f4], 0
push ebx
push ebp
mov ebp, ecx
mov ecx, dword [ebp + 4]
push esi
push edi
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], 0
jne 0x10123f3c
inc dword [0x1023b3dc]
push 0
push 0
call fcn.1004715e
dec dword [0x1023b3dc]
mov ebx, dword [esp + 0x6c]
mov edi, dword [esp + 0x74]
test bl, 1
je 0x10049edd
mov edi, dword [ebp + 8]
test bl, bl
jns 0x10049db1
mov esi, dword [edi + 0x38]
cmp esi, 0xffffffff
jne 0x100a07fe
test bl, 0x40
je 0x10049dce
mov esi, dword [edi + 0x3c]
cmp esi, 0xffffffff
jne 0x1009946d
mov esi, dword [edi + 0x44]
cmp esi, 0xffffffff
jne 0x10123fab
test bl, 0x20
je 0x10049ebb
mov ecx, edi
call fcn.10041dde
mov esi, eax
cmp esi, 0xffffffff
je 0x10049ebb
cmp esi, dword [edi + 4]
ja 0x10124082
mov eax, dword [edi]
add eax, esi
test byte [eax + 0x3d], 6
mov eax, 0
sete al
test eax, eax
jne 0x1004f434
test bl, 4
je 0x10049e7a
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 4]
cmp esi, 0xffffffff
je 0x10124089
mov dword [esp + 0x20], 5
mov dword [esp + 0x24], ebx
cmp dword [ebx + 0xe0], 0
je 0x10124096
mov eax, dword [ebx + 0xe0]
add eax, 8
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], esi
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x30], 0
push dword [esp + 0x74]
lea eax, [esp + 0x24]
push eax
call dword [esp + 0x78]
mov dword [esp + 0x14], eax
test eax, eax
js 0x10049eea
mov ebx, dword [esp + 0x6c]
cmp dword [edi + 0x7c], 0
jne 0x101240a7
mov ecx, dword [edi + 4]
cmp esi, ecx
ja 0x101240c2
mov eax, dword [edi]
add eax, esi
mov esi, dword [eax + 4]
cmp esi, 0xffffffff
je 0x10049ebb
cmp esi, ecx
ja 0x101240c9
mov eax, dword [edi]
add eax, esi
cmp word [eax + 0x36], 0
je 0x100afc75
cmp esi, 0xffffffff
jne 0x10049de9
test ebx, 0x100
je 0x10049ed5
mov ecx, edi
call fcn.10048679
mov esi, eax
cmp esi, 0xffffffff
jne 0x101240d0
mov ebp, dword [esp + 0x10]
mov edi, dword [esp + 0x74]
test bl, 0x10
jne 0x101241b5
mov eax, dword [esp + 0x14]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x58
ret 0xc
test bl, 8
jne 0x10049e0f
jmp 0x10049e7a
mov ebp, ebx
and ebp, 8
mov ecx, dword [edi + 4]
cmp esi, ecx
ja 0x10123f78
mov eax, dword [edi]
add eax, esi
movzx eax, byte [eax]
shr eax, 3
not eax
and eax, 1
test ebp, ebp
je 0x100afc4c
test bl, 4
je 0x100afc59
test ebx, 0x400
je 0x10123f7f
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 4]
mov dword [esp + 0x20], 4
mov dword [esp + 0x24], ebx
cmp dword [ebx + 0xe0], 0
je 0x10123f93
mov eax, dword [ebx + 0xe0]
push dword [esp + 0x74]
add eax, 8
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x24]
push eax
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], 0xffffffff
mov dword [esp + 0x3c], 0xffffffff
mov dword [esp + 0x40], 0
call dword [esp + 0x78]
mov dword [esp + 0x14], eax
test eax, eax
js 0x10049eea
mov ebx, dword [esp + 0x6c]
cmp esi, dword [edi + 4]
ja 0x10123fa4
mov eax, dword [edi]
add eax, esi
mov esi, dword [eax + 4]
cmp esi, 0xffffffff
jne 0x10099472
jmp 0x10049dc2
cmp esi, dword [edi + 4]
ja 0x10123f55
mov ecx, dword [edi]
add ecx, esi
xor eax, eax
cmp word [ecx + 0x12], ax
sete al
test eax, eax
jne 0x100afc3e
test bl, 4
je 0x100a089b
movzx eax, word [ecx + 0x10]
lea ecx, [esp + 0x18]
push ecx
mov ecx, dword [edi + 0x6c]
push 0
push eax
call fcn.1002ab62
test eax, eax
js 0x10049eea
mov ebx, dword [ebp + 4]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x20], 6
mov dword [esp + 0x24], ebx
cmp dword [ebx + 0xe0], 0
mov ebp, ecx
je 0x10123f5c
mov eax, dword [ebx + 0xe0]
add eax, 8
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], ebp
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
push dword [esp + 0x74]
lea eax, [esp + 0x24]
push eax
call dword [esp + 0x78]
mov dword [esp + 0x14], eax
test eax, eax
js 0x10049eea
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x10]
cmp esi, dword [edi + 4]
ja 0x10123f71
mov eax, dword [edi]
add eax, esi
mov esi, dword [eax + 4]
cmp esi, 0xffffffff
je 0x10049db1
jmp 0x100a07fe
test bl, 8
jne 0x100a0821
jmp 0x100a089b
test eax, eax
je 0x10099494
jmp 0x1009950f
test eax, eax
jne 0x1009949d
jmp 0x1009950f
test byte [eax + 0x10], 0x10
je 0x100994a9
jmp 0x1009950f
mov esi, dword [eax + 4]
cmp esi, 0xffffffff
je 0x10049eb2
jmp 0x10049e9b
mov eax, dword [ecx + 0x24]
test byte [eax + 0x10], 2
jne 0x10049d8d
push 0
call fcn.10047060
jmp 0x10049d8d
xor ecx, ecx
jmp 0x100a080b
lea eax, [esp + 0x1c]
push eax
mov ecx, ebx
call fcn.1001c9e1
mov ecx, dword [esp + 0x18]
jmp 0x100a085f
xor eax, eax
jmp 0x100a08a8
xor eax, eax
jmp 0x10099481
cmp esi, ecx
jbe 0x10123f8a
xor eax, eax
jmp 0x100afc66
mov eax, dword [edi]
add eax, esi
jmp 0x100afc66
lea eax, [esp + 0x1c]
push eax
mov ecx, ebx
call fcn.1001c9e1
jmp 0x100994c9
xor eax, eax
jmp 0x1009951c
mov ebp, ebx
and ebp, 0x400
mov edi, edi
test ebp, ebp
jne 0x10123fd0
cmp esi, dword [edi + 4]
jbe 0x10123fc2
xor eax, eax
jmp 0x10123fc6
mov eax, dword [edi]
add eax, esi
test byte [eax + 0x10], 0x10
jne 0x10124064
cmp esi, dword [edi + 4]
jbe 0x10123fd9
xor eax, eax
jmp 0x10123fdd
mov eax, dword [edi]
add eax, esi
movzx eax, byte [eax]
shr eax, 3
not eax
and eax, 1
je 0x10123ff1
test bl, 8
je 0x10124064
jmp 0x10123ff6
test bl, 4
je 0x10124064
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 4]
mov dword [esp + 0x20], 4
mov dword [esp + 0x24], ebx
cmp dword [ebx + 0xe0], 0
jne 0x1012401e
lea eax, [esp + 0x18]
push eax
mov ecx, ebx
call fcn.1001c9e1
mov eax, dword [ebx + 0xe0]
push dword [esp + 0x74]
add eax, 8
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x24]
push eax
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], 0xffffffff
mov dword [esp + 0x3c], 0xffffffff
mov dword [esp + 0x40], 0
call dword [esp + 0x78]
mov dword [esp + 0x14], eax
test eax, eax
js 0x10049eea
mov ebx, dword [esp + 0x6c]
cmp esi, dword [edi + 4]
jbe 0x1012406d
xor eax, eax
jmp 0x10124071
mov eax, dword [edi]
add eax, esi
mov esi, dword [eax + 4]
cmp esi, 0xffffffff
je 0x10049dce
jmp 0x10123fb5
xor eax, eax
jmp 0x10049df6
mov dword [esp + 0x20], 0
jmp 0x10049e61
lea eax, [esp + 0x1c]
push eax
mov ecx, ebx
call fcn.1001c9e1
jmp 0x10049e38
cmp esi, dword [edi + 4]
jbe 0x101240b6
xor eax, eax
mov esi, dword [eax + 4]
jmp 0x10049eb2
mov eax, dword [edi]
add eax, esi
mov esi, dword [eax + 4]
jmp 0x10049eb2
xor eax, eax
jmp 0x10049e93
xor eax, eax
jmp 0x10049ea7
mov ebp, ebx
and ebp, 4
lea esp, [esp]
test ebp, ebp
je 0x10124155
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 4]
cmp esi, 0xffffffff
jne 0x101240f2
mov dword [esp + 0x20], 0
jmp 0x1012413c
mov dword [esp + 0x20], 5
mov dword [esp + 0x24], ebx
cmp dword [ebx + 0xe0], 0
jne 0x10124113
lea eax, [esp + 0x1c]
push eax
mov ecx, ebx
call fcn.1001c9e1
mov eax, dword [ebx + 0xe0]
add eax, 8
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], esi
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x30], 1
push dword [esp + 0x74]
lea eax, [esp + 0x24]
push eax
call dword [esp + 0x78]
mov dword [esp + 0x14], eax
test eax, eax
js 0x10049eea
cmp dword [edi + 0x7c], 0
je 0x10124170
cmp esi, dword [edi + 4]
jbe 0x10124167
xor eax, eax
mov esi, dword [eax + 4]
jmp 0x101241a3
mov eax, dword [edi]
add eax, esi
mov esi, dword [eax + 4]
jmp 0x101241a3
mov ecx, dword [edi + 4]
cmp esi, ecx
jbe 0x1012417b
xor eax, eax
jmp 0x1012417f
mov eax, dword [edi]
add eax, esi
mov esi, dword [eax + 4]
cmp esi, 0xffffffff
je 0x101241ac
nop
cmp esi, ecx
jbe 0x10124190
xor eax, eax
jmp 0x10124194
mov eax, dword [edi]
add eax, esi
cmp word [eax + 0x36], 0
jne 0x101241a3
mov esi, dword [eax + 4]
cmp esi, 0xffffffff
jne 0x10124188
cmp esi, 0xffffffff
jne 0x101240d8
mov ebx, dword [esp + 0x6c]
jmp 0x10049ed5
mov esi, dword [ebp + 4]
mov eax, 0x400
test word [esi + 0xc4], ax
je 0x101241cf
test bl, 8
je 0x10049ee6
mov ecx, dword [esi + 0x24]
mov dword [esp + 0x6c], 0
mov dword [esp + 0x74], 0
call fcn.1000b090
cmp eax, 8
jne 0x1012422f
lea eax, [esp + 0x18]
push eax
mov ecx, esi
call fcn.1001ca16
mov ecx, dword [esp + 0x18]
push 0
lea eax, [esp + 0x70]
push eax
push 0
call fcn.1002abe8
mov ecx, dword [esp + 0x6c]
test ecx, ecx
je 0x10124241
mov eax, dword [ecx]
lea edx, [esp + 0x74]
push edx
push 0x1001b89c
push ecx
call dword [eax]
mov esi, dword [esp + 0x74]
test esi, esi
je 0x10124233
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov esi, dword [esp + 0x74]
mov ecx, dword [esp + 0x6c]
test ecx, ecx
je 0x10124245
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov esi, dword [esp + 0x74]
test esi, esi
je 0x101242b6
mov eax, dword [0x1023b3dc]
inc eax
mov dword [0x1023b3dc], eax
test byte [esi + 0x50], 2
jne 0x10124266
mov ecx, esi
call fcn.10021670
mov eax, dword [0x1023b3dc]
dec eax
mov dword [0x1023b3dc], eax
mov esi, dword [esi + 0x14]
mov dword [esp + 0x44], 3
mov dword [esp + 0x48], esi
cmp dword [esi + 0xe0], 0
jne 0x10124290
lea eax, [esp + 0x74]
push eax
mov ecx, esi
call fcn.1001c9e1
mov eax, dword [esi + 0xe0]
mov esi, dword [esp + 0x70]
push edi
push esi
add eax, 8
push ebx
lea ecx, [esp + 0x50]
mov dword [esp + 0x58], eax
call fcn.10049d53
test eax, eax
jns 0x101242be
jmp 0x10049eea
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x70]
test bl, 2
je 0x10049eea
push edi
push esi
mov ecx, ebp
call fcn.101bfeb1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x58
ret 0xc