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

Disassembly:
push 0xffffffffffffffff
push 0x48a8b7
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1b8
mov eax, dword [esp + 0x1c8]
push ebp
push esi
push edi
push 0x4afc2c
push eax
call fcn.0045879b
mov esi, eax
xor ebp, ebp
add esp, 8
cmp esi, ebp
mov dword [esp + 0x54], esi
jne 0x409226
xor eax, eax
jmp 0x409a2d
mov cl, byte [0x4bfab8]
xor eax, eax
mov byte [esp + 0xc4], cl
mov ecx, 0x3f
lea edi, [esp + 0xc5]
mov edx, dword [0x4bb604]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov dword [esp + 0x48], edx
push esi
lea eax, [esp + 0xc8]
push 0xff
push eax
mov dword [esp + 0x1d8], ebp
call fcn.00459556
add esp, 0xc
lea ecx, [esp + 0xc4]
push ecx
lea ecx, [esp + 0x4c]
call fcn.0046e8dc
push 0x4b0fe4
lea ecx, [esp + 0x4c]
call fcn.0046bb72
push 0x4b0fe4
lea ecx, [esp + 0x4c]
call fcn.0046bb1f
push str.__xml
lea ecx, [esp + 0x4c]
call fcn.0046b786
test eax, eax
je 0x4092d0
push esi
call fcn.0045869f
add esp, 4
lea ecx, [esp + 0x48]
mov dword [esp + 0x1cc], 0xffffffff
call fcn.0046e753
xor eax, eax
jmp 0x409a2d
mov dl, byte [esp + 0x17]
lea ecx, [esp + 0x1c]
mov byte [esp + 0x18], dl
call fcn.0040c960
lea ecx, [esp + 0x2c]
call fcn.0040c960
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x40], ebp
mov dword [esp + 0x44], ebp
mov eax, dword [0x4bb604]
mov dword [esp + 0x10], ebp
mov dword [esp + 0x50], ebp
mov dword [esp + 0xc], eax
mov al, byte [esi + 0xc]
mov byte [esp + 0x1cc], 2
test al, 0x10
jne 0x409954
push ebx
push esi
call fcn.00459525
mov bl, al
mov eax, dword [esp + 0x18]
add esp, 4
cmp bl, 0x3c
mov byte [esp + 0x50], bl
je 0x409378
cmp eax, ebp
je 0x409943
mov eax, dword [eax + 4]
push 0x4bfab8
push eax
call fcn.00458301
add esp, 8
test eax, eax
jne 0x409362
cmp bl, 0xd
je 0x409943
cmp bl, 0xa
je 0x409943
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x14]
push ecx
lea ecx, [edx + 4]
call fcn.0046eb56
jmp 0x409943
cmp eax, ebp
je 0x409389
push 0x4b0fe4
lea ecx, [eax + 4]
call fcn.0046bb1f
push 0x3c
lea ecx, [esp + 0x14]
call fcn.0046b562
test byte [esi + 0xc], 0x10
jne 0x4093bc
push esi
call fcn.00459525
mov bl, al
add esp, 4
mov byte [esp + 0x50], bl
lea ecx, [esp + 0x10]
mov eax, dword [esp + 0x50]
push eax
call fcn.0046eb56
cmp bl, 0x3e
jne 0x409394
mov edi, str.___CDATA_
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x10]
repne scasb al, byte es:[edi]
mov esi, dword [edx - 8]
not ecx
dec ecx
cmp esi, ecx
jbe 0x409585
mov edi, str.___CDATA_
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0x6c]
push ecx
lea ecx, [esp + 0x18]
call fcn.0046b70e
mov eax, dword [eax]
push eax
push str.___CDATA_
call fcn.004646f0
add esp, 8
lea ecx, [esp + 0x68]
test eax, eax
sete bl
call fcn.0046e753
test bl, bl
je 0x409581
mov esi, dword [esp + 0x58]
mov edi, 0x4b0fcc
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x70]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [esp + 0x18]
call fcn.0046b692
mov eax, dword [eax]
push eax
push 0x4b0fcc
call fcn.004646f0
add esp, 8
test eax, eax
je 0x409466
mov eax, dword [esi + 0xc]
shr eax, 4
not al
and al, 1
mov byte [esp + 0x1b], al
je 0x409466
mov bl, 1
jmp 0x409468
xor bl, bl
lea ecx, [esp + 0x70]
call fcn.0046e753
test bl, bl
je 0x409492
push esi
call fcn.00459525
mov byte [esp + 0x54], al
add esp, 4
mov ecx, dword [esp + 0x50]
push ecx
lea ecx, [esp + 0x14]
call fcn.0046eb56
jmp 0x409420
mov edi, str.___CDATA_
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x74]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [esp + 0x18]
call fcn.0046b5d9
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x1d4], 3
call fcn.0046e88c
lea ecx, [esp + 0x74]
mov byte [esp + 0x1d0], 2
call fcn.0046e753
mov edi, 0x4b0fcc
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x5c]
push ecx
push eax
lea ecx, [esp + 0x18]
call fcn.0046b692
mov eax, dword [eax]
push eax
push 0x4b0fcc
call fcn.004646f0
add esp, 8
lea ecx, [esp + 0x5c]
test eax, eax
sete bl
call fcn.0046e753
test bl, bl
je 0x40955d
mov ecx, dword [esp + 0x10]
mov edi, 0x4b0fcc
xor eax, eax
mov edx, dword [ecx - 8]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
sub edx, ecx
lea ecx, [esp + 0x10]
push edx
lea edx, [esp + 0x64]
push edx
call fcn.0046b70e
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x1d4], 4
call fcn.0046e88c
lea ecx, [esp + 0x60]
mov byte [esp + 0x1d0], 2
call fcn.0046e753
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x10]
push eax
add ecx, 4
call fcn.0046eb6b
push 0x4bfab8
lea ecx, [esp + 0x14]
call fcn.0046e8dc
jmp 0x409943
mov edx, dword [esp + 0x10]
mov eax, dword [edx - 8]
cmp eax, 3
jle 0x4096b0
cmp byte [edx + 1], 0x2f
jne 0x4095da
cmp dword [esp + 0x48], ebp
je 0x4095d1
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x30]
cmp edx, eax
jne 0x4095b2
lea ecx, [esp + 0x1c]
call fcn.0040c840
cmp dword [esp + 0x48], ebp
je 0x4095bd
sub dword [esp + 0x38], 4
mov eax, dword [esp + 0x48]
dec eax
mov dword [esp + 0x48], eax
jne 0x4095d1
lea ecx, [esp + 0x1c]
call fcn.0040c840
mov dword [esp + 0x14], ebp
jmp 0x409943
cmp eax, 3
jle 0x4096b0
cmp byte [eax + edx - 2], 0x2f
jne 0x4096b0
push 0x10
call fcn.0047330d
add esp, 4
cmp eax, ebp
je 0x409615
mov ecx, dword [0x4bb604]
mov dword [eax], ecx
mov edx, dword [0x4bb604]
mov dword [eax + 4], edx
mov dword [eax + 8], ebp
mov dword [eax + 0xc], ebp
jmp 0x409617
xor eax, eax
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x14], eax
cmp ecx, ebp
jne 0x409627
mov dword [esp + 0x54], eax
lea ecx, [esp + 0x10]
push ecx
mov ecx, eax
call fcn.0046e88c
cmp dword [esp + 0x48], ebp
je 0x4096a7
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x78], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x80], ecx
push 0xffffffffffffffff
lea ecx, [esp + 0x7c]
mov dword [esp + 0x80], eax
mov dword [esp + 0x88], edx
call fcn.0040c9a0
mov eax, dword [esp + 0x80]
mov ecx, dword [eax]
cmp ecx, ebp
je 0x4096a7
mov eax, dword [ecx + 0xc]
cmp eax, ebp
jne 0x409691
mov edx, dword [esp + 0x14]
mov dword [ecx + 0xc], edx
mov dword [esp + 0x14], ebp
jmp 0x409943
mov dword [esp + 0x64], eax
mov eax, dword [eax + 8]
cmp eax, ebp
jne 0x409691
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x14]
mov dword [ecx + 8], eax
mov dword [esp + 0x14], ebp
jmp 0x409943
push 0x10
call fcn.0047330d
add esp, 4
cmp eax, ebp
je 0x4096d7
mov edx, dword [0x4bb604]
mov dword [eax], edx
mov ecx, dword [0x4bb604]
mov dword [eax + 4], ecx
mov dword [eax + 8], ebp
mov dword [eax + 0xc], ebp
jmp 0x4096d9
xor eax, eax
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x14], eax
cmp ecx, ebp
jne 0x4096e9
mov dword [esp + 0x54], eax
lea edx, [esp + 0x10]
mov ecx, eax
push edx
call fcn.0046e88c
cmp dword [esp + 0x48], ebp
je 0x4097b7
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x30]
lea edx, [esi - 4]
mov ecx, edx
sub ecx, edi
sar ecx, 2
js 0x40971a
mov eax, ecx
shr eax, 0xa
jmp 0x409726
mov eax, 0x3ff
sub eax, ecx
shr eax, 0xa
neg eax
cmp eax, ebp
jne 0x40972e
mov ecx, edx
jmp 0x40973d
mov edx, dword [esp + 0x3c]
mov edx, dword [edx + eax*4]
shl eax, 0xa
sub ecx, eax
lea ecx, [edx + ecx*4]
mov ecx, dword [ecx]
cmp ecx, ebp
je 0x40976d
mov eax, dword [ecx + 0xc]
cmp eax, ebp
jne 0x409753
mov eax, dword [esp + 0x14]
mov dword [ecx + 0xc], eax
jmp 0x409769
mov dword [esp + 0x6c], eax
mov eax, dword [eax + 8]
cmp eax, ebp
jne 0x409753
mov edx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x14]
mov dword [edx + 8], ecx
mov esi, dword [esp + 0x38]
cmp dword [esp + 0x48], ebp
je 0x4097b7
mov ecx, dword [esp + 0x34]
cmp esi, ecx
je 0x4097b7
lea eax, [esi + 4]
cmp eax, ecx
mov ecx, esi
mov dword [esp + 0x38], eax
jne 0x4097a4
lea eax, [esp + 0x14]
push eax
push ecx
call fcn.0040ca10
add esp, 8
lea ecx, [esp + 0x1c]
call fcn.0040c6e0
jmp 0x40993f
cmp ecx, ebp
je 0x40993f
mov edx, dword [esp + 0x14]
mov dword [ecx], edx
jmp 0x40993f
push 0x1000
call fcn.0047330d
mov esi, eax
mov eax, dword [esp + 0x4c]
add esp, 4
cmp eax, ebp
jne 0x40983e
lea ecx, [esp + 0x1c]
mov dword [esp + 0x44], 2
call fcn.0040c8d0
mov eax, dword [esp + 0x40]
mov dword [eax + 4], esi
mov ecx, dword [esp + 0x40]
add esi, 0x800
lea eax, [ecx + 4]
lea ecx, [esp + 0xa8]
push eax
push esi
call fcn.0040c970
mov ecx, dword [esp + 0xa8]
mov edx, dword [esp + 0xac]
mov eax, dword [esp + 0xb0]
mov esi, dword [esp + 0xb4]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], edx
mov dword [esp + 0x3c], esi
jmp 0x409928
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
lea ecx, [edx + eax*4 - 4]
mov eax, dword [esp + 0x3c]
cmp eax, ecx
jae 0x409896
add eax, 4
lea ecx, [esp + 0x98]
mov dword [esp + 0x3c], eax
mov dword [eax], esi
mov edx, dword [esp + 0x3c]
push edx
push esi
call fcn.0040c970
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0xa4]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x34], ecx
jmp 0x409924
mov ebx, dword [esp + 0x2c]
lea ecx, [esp + 0x1c]
sub eax, ebx
sar eax, 2
inc eax
mov edi, eax
lea eax, [edi + edi]
push eax
call fcn.0040c8f0
lea edi, [eax + edi*4]
push eax
mov dword [edi], esi
mov ecx, dword [esp + 0x2c]
push ecx
lea ecx, [esp + 0xc0]
call fcn.0040c970
mov edx, dword [esp + 0xb8]
mov ecx, dword [esp + 0xc0]
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0xc4]
mov dword [esp + 0x28], ecx
push edi
push esi
lea ecx, [esp + 0x90]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x34], edx
call fcn.0040c970
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0x94]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x3c], edx
mov ecx, eax
add eax, 4
mov dword [esp + 0x38], eax
lea eax, [esp + 0x14]
push eax
push ecx
call fcn.0040ca10
add esp, 8
inc dword [esp + 0x48]
mov ecx, dword [esp + 0x58]
mov esi, ecx
test byte [ecx + 0xc], 0x10
je 0x40931b
pop ebx
push esi
call fcn.0045869f
add esp, 4
lea ecx, [esp + 0xc]
mov byte [esp + 0x1cc], 1
call fcn.0046e753
cmp dword [esp + 0x44], ebp
je 0x409a15
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x44]
add ecx, 4
dec eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x44], eax
je 0x409998
mov eax, dword [esp + 0x20]
mov edx, ecx
cmp edx, eax
jne 0x409a0b
mov ecx, dword [esp + 0x28]
mov eax, ecx
add ecx, 4
mov dword [esp + 0x28], ecx
mov eax, dword [eax]
push eax
call fcn.00473336
mov eax, dword [esp + 0x48]
add esp, 4
cmp eax, ebp
jne 0x4099ef
xor eax, eax
xor ecx, ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x3c]
xor edx, edx
xor esi, esi
push eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], esi
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], esi
call fcn.00473336
add esp, 4
jmp 0x409a0b
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], eax
lea edx, [eax + 0x1000]
mov dword [esp + 0x20], edx
cmp dword [esp + 0x44], ebp
jne 0x409978
lea ecx, [esp + 0x48]
mov dword [esp + 0x1cc], 0xffffffff
call fcn.0046e753
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x1c4]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
add esp, 0x1c4
ret