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

Disassembly:
sub esp, 0x5c
mov eax, dword [esp + 0x64]
push ebx
push ebp
push esi
lea eax, [eax + eax*8]
push edi
mov edi, dword [esp + 0x70]
mov ebp, dword [edi]
mov esi, dword [ebp + 8]
lea ebx, [edi + eax*8 + 0x2e0]
movzx eax, byte [ebx + 0x24]
lea edx, [edi + 0x148]
mov dword [esp + 0x30], edx
mov edx, dword [ebp]
mov dword [esp + 0x24], edx
mov edx, dword [ebx + 0x38]
lea eax, [eax + eax*8]
mov dword [esp + 0x18], edx
mov edx, dword [edi + 4]
lea eax, [edx + eax*8 + 8]
mov dword [esp + 0x48], eax
mov eax, dword [eax + 0x2c]
xor ecx, ecx
mov dword [esp + 0x10], eax
mov eax, dword [edi + 0x44]
cmp eax, ecx
mov dword [esp + 0x58], ecx
mov dword [esp + 0x44], esi
mov dword [esp + 0x4c], ecx
jle 0x491dba
lea ecx, [edi + 0x48]
jmp 0x491da0
mov edx, dword [esp + 0x10]
cmp dword [ecx], edx
je 0x491e9a
add dword [esp + 0x4c], 1
add ecx, 4
cmp dword [esp + 0x4c], eax
jl 0x491da0
xor eax, eax
xor edx, edx
mov ecx, dword [esp + 0x74]
not eax
and eax, dword [esp + 0x78]
not edx
and edx, dword [esp + 0x7c]
mov dword [ebx + 0x40], eax
mov dword [ebx + 0x44], edx
mov eax, dword [edi + 0x18]
mov edx, dword [edi + 0x1c]
call fcn.004f7370
and eax, 1
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
test byte [eax + 0x24], 0x40
je 0x491dfe
test byte [edi + 0x22], 0x20
mov dword [esp + 0x68], 1
je 0x491e06
mov dword [esp + 0x68], 0
push esi
call fcn.00457f10
push esi
mov dword [esp + 0x48], eax
mov dword [ebx + 0x10], eax
mov dword [ebx + 0xc], eax
call fcn.00457f10
add esp, 8
cmp byte [ebx + 0x24], 0
mov dword [esp + 0x4c], eax
mov dword [ebx + 0x18], eax
jbe 0x491e4d
mov ecx, dword [esp + 0x48]
test byte [ecx + 0x20], 8
je 0x491e4d
add dword [ebp + 0x4c], 1
mov eax, dword [ebp + 0x4c]
push eax
push 0
push 0x17
push esi
mov dword [ebx], eax
call fcn.00457ef0
add esp, 0x10
mov edx, dword [esp + 0x48]
mov eax, dword [edx + 0x24]
test al, 4
mov dword [esp + 0x64], eax
je 0x491eaf
mov eax, edx
mov edi, dword [eax + 0x1c]
mov eax, dword [eax + 0x18]
push edi
sub eax, 1
push eax
push 0x17
push esi
call fcn.00457ef0
push edi
push 0x14
push esi
call fcn.00457e90
mov ecx, dword [esp + 0x5c]
push ecx
add edi, 1
push edi
push 0x29
push esi
mov dword [ebx + 0x2c], eax
call fcn.00457ef0
add esp, 0x2c
mov byte [ebx + 0x25], 0x10
jmp 0x492bff
mov ecx, dword [esp + 0x4c]
mov eax, 1
xor edx, edx
call fcn.004f7390
jmp 0x491dbe
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x24]
test eax, 0x400
je 0x492032
mov edx, ecx
movzx edi, word [edx + 0x28]
push ebp
mov dword [esp + 0x44], edi
call fcn.00478f90
lea eax, [edi + 2]
push eax
push ebp
mov dword [esp + 0x74], eax
call fcn.00479570
mov dword [esp + 0x48], eax
mov eax, dword [ebx + 0xc]
xor edi, edi
add esp, 0xc
cmp dword [esp + 0x40], edi
mov dword [esp + 0x5c], eax
jle 0x491f51
mov ecx, dword [esp + 0x3c]
add ecx, 2
mov dword [esp + 0x74], ecx
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x2c]
mov eax, dword [eax + edi*4]
test eax, eax
je 0x491f43
test byte [eax + 0x12], 1
mov ecx, dword [esp + 0x74]
push ecx
je 0x491f34
mov edx, dword [esp + 0x18]
push edx
push edi
push eax
push ebp
mov eax, ebx
call fcn.0048ea40
mov eax, dword [ebx + 0x10]
add esp, 0x14
mov dword [esp + 0x5c], eax
jmp 0x491f43
mov edx, dword [eax]
mov eax, dword [edx + 0x10]
push eax
push ebp
call fcn.004792f0
add esp, 0xc
add dword [esp + 0x74], 1
add edi, 1
cmp edi, dword [esp + 0x40]
jl 0x491f00
mov ecx, dword [esp + 0x3c]
mov edi, dword [esp + 0x18]
mov edx, dword [edi + 0x18]
push ecx
push edx
push 0x17
push esi
call fcn.00457ef0
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
add eax, 1
push eax
push ecx
push 0x17
push esi
call fcn.00457ef0
mov dl, byte [edi + 0x1c]
mov eax, dword [edi + 0x20]
mov ecx, dword [esp + 0x5c]
neg dl
sbb edx, edx
and edx, 0xfffffff7
add edx, 0xfffffffe
push edx
mov edx, dword [esp + 0x80]
push eax
mov eax, dword [esp + 0x38]
push ecx
push edx
push eax
push 0xe
push esi
call fcn.0045a660
xor eax, eax
add esp, 0x3c
cmp dword [esp + 0x40], eax
mov byte [edi + 0x1c], 0
mov dword [esp + 0x74], eax
jle 0x491ffe
lea ebx, [ebx]
cmp eax, 0x10
jge 0x491ffe
mov dx, word [edi + 0x1e]
mov cx, ax
shr dx, cl
test dl, 1
je 0x491ff1
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x2c]
mov edx, dword [esp + 0x74]
mov eax, dword [ecx + edx*4]
mov edi, ebx
call fcn.0048e980
mov eax, dword [esp + 0x74]
mov edi, dword [esp + 0x18]
add eax, 1
cmp eax, dword [esp + 0x40]
mov dword [esp + 0x74], eax
jl 0x491fc0
mov eax, dword [esp + 0x10]
push esi
mov byte [ebx + 0x25], 0x8d
mov dword [ebx + 0x28], eax
call fcn.004580e0
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x40]
push ecx
push edx
push ebp
mov dword [ebx + 0x2c], eax
call fcn.004795a0
push 1
push ebp
call fcn.00478fa0
add esp, 0x18
jmp 0x492bff
mov edx, eax
and edx, 0x100
je 0x4920b0
test al, 5
je 0x4920b0
push ebp
call fcn.00479500
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx + 0x2c]
mov ecx, dword [edx]
push eax
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x1c]
push eax
push 0
push ecx
push ebp
mov eax, ebx
call fcn.0048ea40
mov edi, eax
mov eax, dword [ebx + 0x10]
push eax
push edi
push 0x23
push esi
mov dword [esp + 0x60], eax
call fcn.00457ef0
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x38]
push edi
push ecx
push edx
push 0x41
push esi
call fcn.00457de0
push 1
push edi
push ebp
call fcn.004791a0
mov eax, dword [esp + 0x58]
add esp, 0x48
push edi
push 0xffffffffffffffff
push eax
push ebp
call fcn.00478e20
add esp, 0x10
mov byte [ebx + 0x25], 0x97
jmp 0x492bff
test edx, edx
je 0x49227a
test al, 2
je 0x49227a
xor edx, edx
xor edi, edi
test al, 0x20
mov dword [esp + 0x3c], 0x97
mov dword [esp + 0x5c], edx
mov dword [esp + 0x74], edx
je 0x4920e2
mov edx, dword [ecx + 0x2c]
mov edi, dword [edx]
mov edx, 1
test al, 0x10
je 0x4920f0
mov eax, dword [ecx + 0x2c]
mov ecx, dword [eax + edx*4]
mov dword [esp + 0x74], ecx
cmp dword [esp + 0x14], 0
je 0x492101
mov eax, edi
mov edi, dword [esp + 0x74]
mov dword [esp + 0x74], eax
test edi, edi
je 0x49217c
mov eax, dword [edi]
lea edx, [esp + 0x60]
mov dword [esp + 0x68], eax
mov eax, dword [eax + 0x10]
push edx
push eax
push ebp
mov byte [esp + 0x54], 0x3c
mov byte [esp + 0x55], 0x3a
mov byte [esp + 0x56], 0x39
mov byte [esp + 0x57], 0x3b
call fcn.0047bef0
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x1c]
push eax
push ecx
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x7c]
movzx ecx, byte [eax]
push edx
movzx edx, byte [esp + ecx + 0x10]
push edx
push esi
call fcn.00457de0
mov eax, dword [esp + 0x84]
push 1
push eax
push ebp
call fcn.004791a0
mov ecx, dword [esp + 0x8c]
push ecx
push ebp
call fcn.00479530
mov eax, edi
add esp, 0x34
mov edi, ebx
call fcn.0048e980
jmp 0x49219e
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x10]
neg ecx
sbb ecx, ecx
push edx
and ecx, 0xfffffffd
push eax
add ecx, 0x67
push ecx
push esi
call fcn.00457ef0
add esp, 0x10
mov eax, dword [esp + 0x74]
test eax, eax
je 0x4921fa
mov edi, dword [eax]
add dword [ebp + 0x4c], 1
mov eax, dword [ebp + 0x4c]
mov edx, dword [edi + 0x10]
push eax
push edx
push ebp
mov dword [esp + 0x68], eax
call fcn.004792f0
mov al, byte [edi]
add esp, 0xc
cmp al, 0x52
je 0x4921de
cmp al, 0x50
je 0x4921de
xor eax, eax
cmp dword [esp + 0x14], eax
setne al
lea eax, [eax + eax + 0x50]
mov dword [esp + 0x3c], eax
jmp 0x4921ef
xor ecx, ecx
cmp dword [esp + 0x14], ecx
sete cl
lea ecx, [ecx + ecx + 0x51]
mov dword [esp + 0x3c], ecx
mov eax, dword [esp + 0x74]
mov edi, ebx
call fcn.0048e980
push esi
call fcn.004580e0
mov ecx, dword [esp + 0x14]
add esp, 4
cmp dword [esp + 0x14], 0
mov dword [ebx + 0x28], ecx
sete dl
add dl, 8
cmp dword [esp + 0x3c], 0x97
mov byte [ebx + 0x25], dl
mov dword [ebx + 0x2c], eax
je 0x492bff
push ebp
call fcn.00479500
mov edx, dword [esp + 0x14]
mov edi, eax
push edi
push edx
push 0x62
push esi
mov dword [esp + 0x6c], edi
call fcn.00457ef0
mov eax, dword [esp + 0x24]
push edi
push 0xffffffffffffffff
push eax
push ebp
call fcn.00478e20
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x80]
mov eax, dword [esp + 0x60]
push edi
push ecx
push edx
push eax
push esi
call fcn.00457de0
push 0x6b
push esi
call fcn.00458230
add esp, 0x40
jmp 0x492bff
test eax, 0x200
je 0x49279e
movzx edx, word [ecx + 0x18]
mov dword [esp + 0x2c], edx
mov edx, dword [ecx + 0x1c]
xor eax, eax
test byte [edi + 0x22], 1
mov dword [esp + 0x3c], edx
mov edx, dword [ebx + 8]
mov dword [esp + 0x60], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x20], eax
mov byte [esp + 0x54], al
mov dword [esp + 0x40], edx
je 0x4922d0
cmp byte [edi + 0x24], al
je 0x4922d0
mov edx, dword [esp + 0x3c]
mov dx, word [edx + 0x32]
cmp dx, word [esp + 0x2c]
jbe 0x4922d0
mov eax, 1
mov dword [esp + 0x60], eax
movzx edi, word [esp + 0x2c]
mov edx, dword [ecx + 0x24]
test dl, 0x20
mov dword [esp + 0x74], edi
je 0x4922f3
mov eax, dword [ecx + 0x2c]
mov eax, dword [eax + edi*4]
mov dword [esp + 0x48], eax
add edi, 1
mov eax, 1
test dl, 0x10
je 0x492307
mov ecx, dword [ecx + 0x2c]
mov edx, dword [ecx + edi*4]
mov dword [esp + 0x20], edx
mov eax, 1
mov edi, dword [esp + 0x14]
lea ecx, [esp + 0x1c]
push ecx
push eax
push edi
push ebx
push ebp
call fcn.0048ec00
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x30]
add esp, 0x14
test eax, eax
je 0x492333
mov edx, dword [esp + 0x74]
mov al, byte [edx + eax]
mov byte [esp + 0x54], al
mov ecx, dword [ebx + 0x10]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x3c]
movzx eax, word [ecx + 0x32]
cmp word [esp + 0x2c], ax
jae 0x492360
mov edx, dword [ecx + 0x1c]
mov edi, dword [esp + 0x74]
xor ecx, ecx
cmp byte [edi + edx], cl
mov edi, dword [esp + 0x14]
sete cl
cmp edi, ecx
je 0x49236b
test edi, edi
je 0x49237d
cmp ax, word [esp + 0x2c]
jne 0x49237d
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x48], eax
jmp 0x492385
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x48]
xor edi, edi
cmp eax, edi
mov dl, 0x28
je 0x492396
test byte [eax + 0x12], dl
mov dword [esp + 0x50], edi
je 0x49239e
mov dword [esp + 0x50], 1
cmp ecx, edi
je 0x4923ab
test byte [ecx + 0x12], dl
mov dword [esp + 0x64], edi
je 0x4923b3
mov dword [esp + 0x64], 1
cmp eax, edi
jne 0x4923c2
cmp word [esp + 0x2c], di
mov dword [esp + 0x5c], edi
jbe 0x4923ca
mov dword [esp + 0x5c], 1
test eax, eax
mov edi, dword [esp + 0x74]
mov dword [esp + 0x28], edi
je 0x492466
mov edx, dword [eax]
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x74]
mov edi, dword [edx + 0x10]
add eax, ecx
push eax
push edi
push ebp
mov dword [esp + 0x6c], eax
call fcn.004792f0
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x6c]
push edx
push eax
push edi
push esi
call fcn.00478af0
add esp, 0x1c
cmp dword [esp + 0x1c], 0
je 0x49245b
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x1c]
movzx eax, byte [ecx + edx]
push eax
push edi
call fcn.00479700
add esp, 8
cmp al, 0x62
jne 0x492435
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x1c]
mov byte [ecx + edx], al
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x1c]
movzx edx, byte [eax + ecx]
push edx
push edi
call fcn.00478b30
add esp, 8
test eax, eax
je 0x49245b
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x1c]
mov byte [eax + ecx], 0x62
add dword [esp + 0x28], 1
mov edi, dword [esp + 0x28]
jmp 0x492496
cmp dword [esp + 0x60], 0
je 0x492496
mov eax, dword [esp + 0x34]
mov edx, edi
add edx, eax
push edx
push 0
push 0x1a
push esi
call fcn.00457ef0
add esp, 0x10
add edi, 1
mov dword [esp + 0x50], 0
mov dword [esp + 0x5c], 1
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x34]
push ebp
mov ecx, edi
call fcn.0048e9d0
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x44]
push edi
push ecx
mov ecx, dword [esp + 0x5c]
push edx
mov edx, dword [esp + 0x6c]
push eax
lea eax, [ecx + edx*2]
mov ecx, dword [esp + 0x28]
movzx edx, byte [ecx + eax*2 + 0x52ed00]
push edx
push esi
call fcn.0045a7a0
mov eax, dword [esp + 0x90]
add esp, 0x1c
cmp dword [esp + 0x20], 0
mov dword [esp + 0x28], eax
je 0x492570
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x34]
lea edi, [ecx + edx]
push 1
push edi
push ebp
mov dword [esp + 0x5c], eax
call fcn.00478f30
mov eax, dword [esp + 0x5c]
push edi
push eax
push ebp
call fcn.004792f0
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x68]
push ecx
push edi
push edx
push esi
call fcn.00478af0
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x78]
push eax
push ecx
call fcn.00479700
add esp, 0x30
cmp al, 0x62
je 0x49256b
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x50]
push edx
push eax
call fcn.00478b30
add esp, 8
test eax, eax
jne 0x49256b
push ebp
lea eax, [esp + 0x58]
mov ecx, 1
mov edx, edi
call fcn.0048e9d0
add esp, 4
add dword [esp + 0x28], 1
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x24]
push ecx
push edx
call fcn.0043f760
push esi
call fcn.004580e0
add esp, 0xc
cmp dword [esp + 0x20], 0
mov dword [ebx + 0x2c], eax
jne 0x49259e
cmp word [esp + 0x2c], 0
jne 0x49259e
xor eax, eax
jmp 0x4925a3
mov eax, 1
mov edi, dword [esp + 0x14]
lea ecx, [edi + 1]
imul ecx, eax
movzx eax, byte [ecx + 0x52ed08]
cmp eax, 0x97
je 0x4925e7
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x34]
push edx
mov edx, dword [esp + 0x3c]
push ecx
mov ecx, dword [esp + 0x48]
push edx
push ecx
push eax
push esi
call fcn.0045a7a0
cmp dword [esp + 0x7c], edi
setne dl
push edx
push esi
call fcn.00458230
add esp, 0x20
push ebp
call fcn.00479500
mov edi, eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x24]
add esp, 4
test cl, 0x30
je 0x492656
mov edx, dword [esp + 0x3c]
mov eax, dword [edx + 4]
mov edx, dword [esp + 0x74]
movsx eax, word [eax + edx*2]
test eax, eax
jl 0x492656
mov edx, dword [esp + 0x3c]
mov edx, dword [edx + 0xc]
mov edx, dword [edx + 4]
lea eax, [eax + eax*2]
cmp byte [edx + eax*8 + 0x14], 0
jne 0x492656
cmp word [esp + 0x2c], 0
jne 0x492632
test cl, 0x20
jne 0x492656
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x40]
push edi
push eax
push ecx
push 0x2b
push esi
call fcn.00457de0
mov edx, dword [esp + 0x60]
push edx
push edi
push 0x4c
push esi
call fcn.00457ef0
add esp, 0x24
push edi
push ebp
call fcn.00479530
mov eax, dword [esp + 0x50]
add esp, 8
mov edi, ebx
call fcn.0048e980
mov eax, dword [esp + 0x20]
call fcn.0048e980
cmp dword [esp + 0x68], 0
jne 0x492767
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 0xc]
test byte [eax + 0x2c], 0x20
jne 0x4926ca
push ebp
call fcn.00479500
mov ecx, dword [esp + 0x44]
mov edi, eax
push edi
push ecx
push 0x6b
push esi
mov dword [esp + 0x6c], edi
call fcn.00457ef0
mov edx, dword [esp + 0x24]
push edi
push 0xffffffffffffffff
push edx
push ebp
call fcn.00478e20
mov eax, dword [esp + 0x34]
push edi
push eax
push 0x3d
push esi
call fcn.00457ef0
add esp, 0x34
jmp 0x492767
push eax
call fcn.0045e0a0
movzx ecx, word [eax + 0x32]
push ecx
push ebp
mov dword [esp + 0x80], eax
call fcn.00479570
mov edx, dword [esp + 0x80]
xor edi, edi
add esp, 0xc
cmp word [edx + 0x32], di
mov dword [esp + 0x68], eax
jbe 0x492744
jmp 0x492700
mov eax, dword [esp + 0x74]
mov ecx, dword [eax + 4]
movzx edx, word [ecx + edi*2]
mov eax, dword [esp + 0x3c]
push edx
push eax
call fcn.0045e0d0
mov ecx, dword [esp + 0x70]
movsx eax, ax
lea edx, [edi + ecx]
push edx
push eax
mov eax, dword [esp + 0x50]
push eax
push 0x2b
push esi
call fcn.00457de0
mov ecx, dword [esp + 0x90]
movzx edx, word [ecx + 0x32]
add edi, 1
add esp, 0x1c
cmp edi, edx
jl 0x492700
mov eax, dword [esp + 0x74]
movzx ecx, word [eax + 0x32]
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x4c]
push ecx
mov ecx, dword [esp + 0x14]
push edx
push eax
push ecx
push 0x3f
push esi
call fcn.0045a7a0
add esp, 0x18
mov eax, dword [esp + 0x18]
test dword [eax + 0x24], 0x1000
je 0x49277a
mov byte [ebx + 0x25], 0x97
jmp 0x492788
cmp dword [esp + 0x14], 0
sete dl
add dl, 8
mov byte [ebx + 0x25], dl
mov ecx, dword [esp + 0x40]
mov dword [ebx + 0x28], ecx
test byte [eax + 0x24], 0xf
jne 0x492bff
jmp 0x492bfb
test eax, 0x2000
je 0x492bbd
mov eax, dword [ebp + 0x48]
add dword [ebp + 0x4c], 1
mov edx, dword [ebp + 0x4c]
xor ecx, ecx
mov dword [esp + 0x20], eax
add eax, 1
push esi
mov dword [esp + 0x58], ecx
mov dword [ebp + 0x48], eax
mov dword [esp + 0x38], edx
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], ecx
call fcn.00457f10
mov dword [esp + 0x20], eax
xor eax, eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x38]
mov byte [ebx + 0x25], 0x12
mov dword [ebx + 0x28], eax
mov al, byte [edi + 0x28]
add esp, 4
cmp al, 1
mov dword [esp + 0x28], edx
jbe 0x4928c1
movzx eax, al
sub eax, dword [esp + 0x74]
sub eax, 1
lea ecx, [eax + eax*8]
lea edx, [ecx*8 + 0x50]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x24]
push edx
push eax
call fcn.0043fd50
add esp, 8
test eax, eax
mov dword [esp + 0x40], eax
jne 0x49284e
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5c
ret
mov cl, byte [esp + 0x5c]
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x48]
add cl, 1
mov byte [eax + 1], cl
mov byte [eax], cl
lea edi, [eax + 8]
mov ecx, 0x12
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x70]
mov edx, dword [ecx + 4]
add edx, 8
cmp dword [esp + 0x5c], 1
jl 0x4928c8
mov ecx, dword [esp + 0x5c]
add eax, 0x50
mov dword [esp + 0x38], eax
lea eax, [ebx + 0x6c]
mov dword [esp + 0x50], eax
mov dword [esp + 0x68], ecx
mov eax, dword [esp + 0x50]
movzx eax, byte [eax]
mov edi, dword [esp + 0x38]
lea ecx, [eax + eax*8]
mov eax, 0x48
add dword [esp + 0x50], eax
add dword [esp + 0x38], eax
sub dword [esp + 0x68], 1
lea esi, [edx + ecx*8]
mov ecx, 0x12
rep movsd dword es:[edi], dword [esi]
jne 0x492893
jmp 0x4928c8
mov edx, dword [edi + 4]
mov dword [esp + 0x40], edx
mov eax, dword [esp + 0x70]
test byte [eax + 0x22], 8
jne 0x4928f8
mov eax, dword [ebp + 0x4c]
add eax, 1
push eax
lea ecx, [eax + 1]
push 0
mov dword [ebp + 0x4c], ecx
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x4c]
push 0x1a
push ecx
mov dword [esp + 0x70], eax
call fcn.00457ef0
add esp, 0x10
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x44]
push edx
push 0
push 0x17
push eax
call fcn.00457ef0
mov edi, dword [esp + 0x40]
mov dword [esp + 0x48], eax
mov eax, dword [edi + 0xc]
add esp, 0x10
cmp eax, 1
jle 0x4929b3
test eax, eax
mov dword [esp + 0x68], 0
jle 0x4929b3
xor esi, esi
mov ecx, dword [edi + 0x14]
lea eax, [ecx + esi]
cmp eax, dword [esp + 0x3c]
mov ecx, dword [eax]
je 0x492981
test byte [ecx + 4], 1
jne 0x492981
mov edx, dword [edi + 0x14]
test byte [edx + esi + 0x14], 0x12
lea eax, [edx + esi]
jne 0x492981
test word [eax + 0x12], 0xfff
je 0x492981
mov eax, dword [esp + 0x24]
push 0
push ecx
push eax
call fcn.0047a690
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x30]
push eax
push ecx
push edx
call fcn.0047a390
add esp, 0x18
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x68]
add eax, 1
add esi, 0x30
cmp eax, dword [edi + 0xc]
mov dword [esp + 0x68], eax
jl 0x492934
cmp dword [esp + 0x2c], 0
je 0x4929b3
mov eax, dword [esp + 0x2c]
push 0
push eax
push 0
push 0x48
push ebp
call fcn.0047a890
add esp, 0x14
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x28]
xor edi, edi
cmp dword [eax + 0xc], edi
mov dword [esp + 0x5c], edi
jle 0x492b29
mov dword [esp + 0x50], edi
lea ebx, [ebx]
mov eax, dword [eax + 0x14]
add eax, dword [esp + 0x50]
mov ecx, dword [eax + 8]
cmp ecx, dword [esp + 0x10]
je 0x4929ec
test word [eax + 0x12], 0x200
je 0x492b10
mov ecx, dword [esp + 0x2c]
test ecx, ecx
mov eax, dword [eax]
je 0x492a01
test byte [eax + 4], 1
jne 0x492a01
mov dword [ecx + 0xc], eax
mov eax, ecx
mov edx, dword [esp + 0x20]
push edx
push 0xf0
push 0
push 0
push eax
mov eax, dword [esp + 0x54]
push eax
push ebp
call fcn.004938c0
mov esi, eax
add esp, 0x1c
test esi, esi
je 0x492b10
movzx ecx, byte [ebx + 0x24]
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x40]
push 0
push ecx
push edx
push eax
lea ecx, [esi + 0x2e0]
mov eax, ebp
call fcn.0048f060
mov ecx, dword [esp + 0x80]
add esp, 0x10
test byte [ecx + 0x22], 8
jne 0x492ab3
mov edx, dword [esp + 0x28]
mov eax, dword [edx + 0xc]
sub eax, 1
cmp edi, eax
jne 0x492a69
or edi, 0xffffffff
jmp 0x492a6d
mov edi, dword [esp + 0x5c]
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x48]
push 0
push ecx
mov ecx, dword [eax + 0x10]
push edx
push 0xffffffffffffffff
push ecx
push ebp
call fcn.004790a0
add esp, 0x18
push edi
mov edi, dword [esp + 0x48]
push eax
push edi
call fcn.004580e0
mov edx, dword [esp + 0x6c]
add esp, 4
add eax, 2
push eax
push edx
push 0x7a
push edi
call fcn.0045a7a0
mov edi, dword [esp + 0x74]
add esp, 0x18
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x44]
push eax
push ecx
push 0x11
push edx
call fcn.00457ef0
add esp, 0x10
cmp byte [esi + 0x26], 0
je 0x492ada
mov dword [esp + 0x14], 1
mov eax, dword [esi + 0x318]
test dword [eax + 0x24], 0x200
je 0x492aff
test edi, edi
je 0x492af6
mov ecx, dword [esp + 0x54]
cmp dword [eax + 0x1c], ecx
jne 0x492aff
mov edx, dword [eax + 0x1c]
mov dword [esp + 0x54], edx
jmp 0x492b07
mov dword [esp + 0x54], 0
push esi
call fcn.00490ce0
add esp, 4
mov eax, dword [esp + 0x28]
add dword [esp + 0x50], 0x30
add edi, 1
cmp edi, dword [eax + 0xc]
mov dword [esp + 0x5c], edi
jl 0x4929d0
mov eax, dword [esp + 0x54]
test eax, eax
mov dword [ebx + 0x30], eax
je 0x492b3b
mov eax, dword [esp + 0x20]
mov dword [ebx + 8], eax
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x492b58
mov ecx, dword [esp + 0x24]
push eax
push ecx
mov dword [eax + 0xc], 0
call fcn.00479930
add esp, 8
mov esi, dword [esp + 0x44]
push esi
call fcn.004580e0
mov edx, dword [esp + 0x3c]
push eax
push edx
push esi
call fcn.004581d0
mov eax, dword [ebx + 0xc]
push eax
push 0
push 0x10
push esi
call fcn.00457ef0
mov ecx, dword [esp + 0x3c]
push ecx
push esi
call fcn.00457f60
mov edx, dword [esp + 0x98]
add esp, 0x28
cmp byte [edx + 0x28], 1
jbe 0x492ba9
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x24]
push eax
push ecx
call fcn.0043f760
add esp, 8
cmp dword [esp + 0x14], 0
jne 0x492bff
mov eax, dword [esp + 0x3c]
mov edi, ebx
call fcn.0048e980
jmp 0x492bff
test byte [esp + 0x64], 8
je 0x492bca
mov byte [ebx + 0x25], 0x97
jmp 0x492bff
mov eax, dword [esp + 0x14]
mov dl, byte [eax + 0x52ed0c]
mov ecx, dword [esp + 0x10]
mov byte [ebx + 0x25], dl
mov edx, dword [esp + 0x40]
push edx
mov dword [ebx + 0x28], ecx
movzx eax, byte [eax + 0x52ed10]
push ecx
push eax
push esi
call fcn.00457ef0
add esp, 0x10
add eax, 1
mov dword [ebx + 0x2c], eax
mov byte [ebx + 0x26], 1
mov eax, dword [esp + 0x30]
mov edi, dword [eax + 0xc]
test edi, edi
mov esi, dword [eax + 0x14]
jle 0x492c5c
lea ecx, [ecx]
test byte [esi + 0x14], 6
jne 0x492c52
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0x2c]
and eax, dword [ebx + 0x40]
and ecx, dword [ebx + 0x44]
or eax, ecx
je 0x492c30
mov ecx, dword [esp + 0x70]
mov byte [ecx + 0x26], 1
jmp 0x492c52
cmp dword [ebx], 0
mov eax, dword [esi]
je 0x492c3d
test byte [eax + 4], 1
je 0x492c52
mov edx, dword [esp + 0x4c]
push 8
push edx
push eax
push ebp
call fcn.0047c410
add esp, 0x10
or byte [esi + 0x14], 4
sub edi, 1
add esi, 0x30
test edi, edi
jg 0x492c10
mov eax, dword [esp + 0x30]
mov edi, dword [eax + 0x14]
mov eax, dword [eax + 0xc]
test eax, eax
mov dword [esp + 0x3c], edi
mov dword [esp + 0x74], eax
jle 0x492d45
test byte [edi + 0x14], 6
jne 0x492d2b
cmp word [edi + 0x12], 0x402
jne 0x492d2b
mov eax, dword [edi + 8]
cmp eax, dword [esp + 0x10]
jne 0x492d2b
cmp dword [ebx], 0
jne 0x492d2b
mov ecx, dword [edi]
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 0x78]
push edx
mov edx, dword [esp + 0x34]
mov dword [esp + 0x6c], ecx
mov ecx, dword [edi + 0xc]
push eax
push ecx
mov ecx, dword [esp + 0x1c]
push edx
xor edx, edx
lea eax, [edx + 3]
call fcn.0048ddb0
mov esi, eax
add esp, 0x10
test esi, esi
je 0x492d2b
test byte [esi + 0x14], 4
jne 0x492d2b
mov eax, dword [esp + 0x24]
push 0x30
push eax
call fcn.0043fd50
add esp, 8
test eax, eax
mov dword [esp + 0x70], eax
je 0x492d2b
mov esi, dword [esi]
mov edi, eax
mov ecx, 0xc
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x68]
mov edx, dword [ecx + 0xc]
mov ecx, dword [esp + 0x4c]
push 8
push ecx
push eax
push ebp
mov dword [eax + 0xc], edx
call fcn.0047c410
mov edx, dword [esp + 0x80]
mov eax, dword [esp + 0x34]
push edx
push eax
call fcn.0043f760
mov edi, dword [esp + 0x54]
add esp, 0x18
mov eax, dword [esp + 0x74]
sub eax, 1
add edi, 0x30
test eax, eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x3c], edi
jg 0x492c76
cmp dword [ebx], 0
je 0x492dbc
mov esi, dword [esp + 0x44]
push esi
call fcn.004580e0
mov ecx, dword [ebx]
push ecx
push 1
push 0x17
push esi
mov dword [ebx + 0x1c], eax
call fcn.00457ef0
push ebp
call fcn.00479150
mov edx, dword [esp + 0x48]
mov esi, dword [edx + 0x14]
xor edi, edi
mov eax, edx
add esp, 0x18
cmp dword [eax + 0xc], edi
jle 0x492dbc
lea ecx, [ecx]
test byte [esi + 0x14], 6
jne 0x492dad
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0x2c]
and eax, dword [ebx + 0x40]
and ecx, dword [ebx + 0x44]
or eax, ecx
jne 0x492dad
mov ecx, dword [esp + 0x4c]
mov edx, dword [esi]
push 8
push ecx
push edx
push ebp
call fcn.0047c410
add esp, 0x10
or byte [esi + 0x14], 4
mov eax, dword [esp + 0x30]
add edi, 1
add esi, 0x30
cmp edi, dword [eax + 0xc]
jl 0x492d80
mov ecx, dword [esp + 0x58]
push ecx
push ebp
call fcn.00479530
mov eax, dword [ebx + 0x40]
mov edx, dword [ebx + 0x44]
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5c
ret