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

Disassembly:
mov eax, 0x5cf29e
call fcn.005a39e4
sub esp, 0x2ac
push ebx
push esi
mov esi, dword [ebp + 8]
test esi, esi
mov ebx, ecx
mov dword [ebp - 0x2c], 1
je 0x438792
lea eax, [ebp - 0x10]
push eax
push 0x5ffefc
call fcn.0043836f
test eax, eax
je 0x438792
cmp dword [ebp - 0x10], 0xffffffe5
jle 0x438799
xor eax, eax
jmp 0x439c7e
push edi
fldz
lea eax, [ebp - 0x10]
fstp dword [ebp - 0x28]
push eax
push 0x5ffef0
mov ecx, ebx
lea edi, [esi + 0x610]
call fcn.0043836f
test eax, eax
je 0x4387d3
mov eax, dword [ebp - 0x10]
dec eax
test eax, eax
jge 0x4387c5
xor eax, eax
jmp 0x4387cd
cmp eax, 1
jle 0x4387cd
push 1
pop eax
mov dword [esi + 0x608], eax
lea eax, [ebp - 0x10]
push eax
push 0x5ffee4
mov ecx, ebx
call fcn.0043836f
test eax, eax
je 0x4387ed
mov al, byte [ebp - 0x10]
mov byte [edi + 0x24], al
lea eax, [ebp - 0x10]
push eax
push 0x5ffed8
mov ecx, ebx
call fcn.004382cc
test eax, eax
je 0x438812
fld dword [ebp - 0x10]
fmul dword [0x5d7a04]
call fcn.005a35cc
mov dword [edi + 0x2c], eax
lea eax, [ebp - 0x10]
push eax
push 0x5ffecc
mov ecx, ebx
call fcn.0043836f
test eax, eax
je 0x438831
mov ax, word [ebp - 0x10]
mov word [edi + 0x158], ax
lea eax, [ebp - 0x10]
push eax
push 0x5ffeb4
mov ecx, ebx
call fcn.0043836f
test eax, eax
je 0x43884e
mov eax, dword [ebp - 0x10]
mov dword [edi + 0xe8], eax
lea eax, [ebp - 0x10]
push eax
push 0x5ffe9c
mov ecx, ebx
call fcn.0043836f
test eax, eax
je 0x43886b
mov eax, dword [ebp - 0x10]
mov dword [edi + 0xec], eax
lea eax, [ebp - 0x10]
push eax
push 0x5ffe80
mov ecx, ebx
call fcn.0043836f
test eax, eax
je 0x438888
mov eax, dword [ebp - 0x10]
mov dword [edi + 0xf0], eax
lea eax, [ebp - 0x10]
push eax
push 0x5ffe64
mov ecx, ebx
call fcn.0043836f
test eax, eax
je 0x4388a5
mov eax, dword [ebp - 0x10]
mov dword [edi + 0xf4], eax
lea eax, [ebp - 0x10]
push eax
push 0x5ffe50
mov ecx, ebx
call fcn.004382cc
test eax, eax
je 0x4388cd
fld dword [ebp - 0x10]
fmul dword [0x5d7a04]
call fcn.005a35cc
mov dword [edi + 0x104], eax
lea eax, [ebp - 0x10]
push eax
push 0x5ffe3c
mov ecx, ebx
call fcn.004382cc
test eax, eax
je 0x4388f6
fld dword [ebp - 0x10]
fmul dword [0x5d7a04]
call fcn.005a35cc
mov word [edi + 0x15a], ax
lea eax, [ebp - 0x10]
push eax
push 0x5ffe24
mov ecx, ebx
call fcn.004382cc
test eax, eax
je 0x43891e
fld dword [ebp - 0x10]
fmul dword [0x5d7a04]
call fcn.005a35cc
mov dword [edi + 0x108], eax
lea eax, [ebp - 0x10]
push eax
push 0x5ffe10
mov ecx, ebx
call fcn.004382cc
test eax, eax
je 0x438946
fld dword [ebp - 0x10]
fmul dword [0x5d7a04]
call fcn.005a35cc
mov dword [edi + 0x170], eax
lea eax, [ebp - 0x10]
push eax
push 0x5ffe00
mov ecx, ebx
call fcn.0043836f
test eax, eax
je 0x438960
mov eax, dword [ebp - 0x10]
mov dword [edi + 0x54], eax
lea eax, [ebp - 0x10]
push eax
push 0x5ffdec
mov ecx, ebx
call fcn.0043836f
test eax, eax
je 0x43897a
mov eax, dword [ebp - 0x10]
mov dword [edi + 0x58], eax
lea eax, [ebp - 0x10]
push eax
push 0x5ffdd8
mov ecx, ebx
call fcn.0043836f
test eax, eax
je 0x438997
mov eax, dword [ebp - 0x10]
mov dword [edi + 0x164], eax
lea eax, [ebp - 0x10]
push eax
push 0x5ffdc4
mov ecx, ebx
call fcn.0043836f
test eax, eax
je 0x4389b6
mov ax, word [ebp - 0x10]
mov word [edi + 0x168], ax
lea eax, [ebp - 0x10]
push eax
push 0x5ffdb0
mov ecx, ebx
call fcn.0043836f
test eax, eax
je 0x4389d5
mov ax, word [ebp - 0x10]
mov word [edi + 0x16a], ax
lea eax, [ebp - 0x10]
push eax
push 0x5ffd98
mov ecx, ebx
call fcn.004382cc
test eax, eax
je 0x4389fd
fld dword [ebp - 0x10]
fmul dword [0x5d7a04]
call fcn.005a35cc
mov dword [edi + 0x110], eax
lea eax, [ebp - 0x10]
push eax
push 0x5ffd80
mov ecx, ebx
call fcn.0043836f
test eax, eax
je 0x438a1a
mov eax, dword [ebp - 0x10]
mov dword [edi + 0x114], eax
lea eax, [ebp - 0x10]
push eax
push 0x5ffd64
mov ecx, ebx
call fcn.004382cc
test eax, eax
je 0x438a42
fld dword [ebp - 0x10]
fmul dword [0x5d7a04]
call fcn.005a35cc
mov dword [edi + 0x118], eax
lea eax, [ebp - 0x10]
push eax
push 0x5ffd54
mov ecx, ebx
call fcn.004382cc
test eax, eax
je 0x438a6a
fld dword [ebp - 0x10]
fmul dword [0x5d7a04]
call fcn.005a35cc
mov dword [edi + 0x10c], eax
lea eax, [ebp - 0x10]
push eax
push 0x5ffd44
mov ecx, ebx
call fcn.004382cc
test eax, eax
je 0x438a93
fld dword [ebp - 0x10]
fmul dword [0x5d7a04]
call fcn.005a35cc
mov word [edi + 0x11c], ax
lea eax, [ebp - 0x10]
push eax
push 0x5ffd34
mov ecx, ebx
call fcn.004382cc
test eax, eax
je 0x438abc
fld dword [ebp - 0x10]
fmul dword [0x5d7a04]
call fcn.005a35cc
mov word [edi + 0x15c], ax
lea eax, [ebp - 0x10]
push eax
push 0x5ffd28
mov ecx, ebx
call fcn.0043836f
test eax, eax
je 0x438adb
mov ax, word [ebp - 0x10]
mov word [edi + 0x174], ax
lea eax, [ebp - 0x10]
push eax
push 0x5ffd1c
mov ecx, ebx
call fcn.0043836f
test eax, eax
je 0x438afa
mov ax, word [ebp - 0x10]
mov word [edi + 0x176], ax
lea eax, [ebp - 0x10]
push eax
push 0x5ffd0c
mov ecx, ebx
call fcn.004382cc
test eax, eax
je 0x438b22
fld dword [ebp - 0x10]
fmul dword [0x5d7a04]
call fcn.005a35cc
mov dword [edi + 0xa4], eax
lea eax, [ebp - 0x10]
push eax
push 0x5ffcf0
mov ecx, ebx
call fcn.004382cc
test eax, eax
je 0x438b4a
fld dword [ebp - 0x10]
fmul dword [0x5d7efc]
call fcn.005a35cc
mov dword [edi + 0xac], eax
lea eax, [ebp - 0x10]
push eax
push 0x5ffcd4
mov ecx, ebx
call fcn.004382cc
test eax, eax
je 0x438b72
fld dword [ebp - 0x10]
fmul dword [0x5d7efc]
call fcn.005a35cc
mov dword [edi + 0xb0], eax
lea eax, [ebp - 0x10]
push eax
push 0x5ffcbc
mov ecx, ebx
call fcn.004382cc
test eax, eax
je 0x438b9a
fld dword [ebp - 0x10]
fmul dword [0x5d7efc]
call fcn.005a35cc
mov dword [edi + 0xb4], eax
lea eax, [ebp - 0x10]
push eax
push 0x5ffca4
mov ecx, ebx
call fcn.004382cc
test eax, eax
je 0x438bc2
fld dword [ebp - 0x10]
fmul dword [0x5d7efc]
call fcn.005a35cc
mov dword [edi + 0xb8], eax
lea eax, [ebp - 0x10]
push eax
push 0x5ffc8c
mov ecx, ebx
call fcn.004382cc
test eax, eax
je 0x438bea
fld dword [ebp - 0x10]
fmul dword [0x5d7efc]
call fcn.005a35cc
mov dword [edi + 0xd4], eax
lea eax, [ebp - 0x10]
push eax
push 0x5ffc78
mov ecx, ebx
call fcn.004382cc
test eax, eax
je 0x438c12
fld dword [ebp - 0x10]
fmul dword [0x5d7efc]
call fcn.005a35cc
mov dword [edi + 0xd8], eax
lea eax, [ebp - 0x10]
push eax
push 0x5ffc68
mov ecx, ebx
call fcn.004382cc
test eax, eax
je 0x438c3a
fld dword [ebp - 0x10]
fmul dword [0x5d7efc]
call fcn.005a35cc
mov dword [edi + 0xc8], eax
lea eax, [ebp - 0x10]
push eax
push 0x5ffc58
mov ecx, ebx
call fcn.004382cc
test eax, eax
je 0x438c62
fld dword [ebp - 0x10]
fmul dword [0x5d7efc]
call fcn.005a35cc
mov dword [edi + 0xc4], eax
lea eax, [ebp - 0x10]
push eax
push 0x5ffc48
mov ecx, ebx
call fcn.004382cc
test eax, eax
je 0x438c8a
fld dword [ebp - 0x10]
fmul dword [0x5d7efc]
call fcn.005a35cc
mov dword [edi + 0xd0], eax
lea eax, [ebp - 0x10]
push eax
push 0x5ffc38
mov ecx, ebx
call fcn.004382cc
test eax, eax
je 0x438cb2
fld dword [ebp - 0x10]
fmul dword [0x5d7efc]
call fcn.005a35cc
mov dword [edi + 0xcc], eax
lea eax, [ebp - 0x10]
push eax
push 0x5ffc24
mov ecx, ebx
call fcn.004382cc
test eax, eax
je 0x438cda
fld dword [ebp - 0x10]
fmul dword [0x5d7efc]
call fcn.005a35cc
mov dword [edi + 0xe0], eax
lea eax, [ebp - 0x10]
push eax
push 0x5ffc10
mov ecx, ebx
call fcn.004382cc
test eax, eax
je 0x438d02
fld dword [ebp - 0x10]
fmul dword [0x5d7efc]
call fcn.005a35cc
mov dword [edi + 0xdc], eax
lea eax, [ebp - 0x10]
push eax
push 0x5ffbfc
mov ecx, ebx
call fcn.004382cc
test eax, eax
je 0x438d2a
fld dword [ebp - 0x10]
fmul dword [0x5d7a04]
call fcn.005a35cc
mov dword [edi + 0xe4], eax
lea eax, [ebp - 0x10]
push eax
push 0x5ffbe8
mov ecx, ebx
call fcn.0043836f
test eax, eax
je 0x438d49
mov ax, word [ebp - 0x10]
mov word [edi + 0x178], ax
lea eax, [ebp - 0x10]
push eax
push 0x5ffbd8
mov ecx, ebx
call fcn.004382cc
test eax, eax
je 0x438d6e
fld dword [ebp - 0x10]
fmul dword [0x5d7a04]
call fcn.005a35cc
mov dword [edi + 0x50], eax
lea eax, [ebp - 0x10]
push eax
push 0x5ffbcc
mov ecx, ebx
call fcn.004382cc
test eax, eax
je 0x438d93
fld dword [ebp - 0x10]
fmul dword [0x5d7a04]
call fcn.005a35cc
mov dword [edi + 0x6c], eax
lea eax, [ebp - 0x10]
push eax
push 0x5ffbc0
mov ecx, ebx
call fcn.004382cc
test eax, eax
je 0x438db8
fld dword [ebp - 0x10]
fmul dword [0x5d7a04]
call fcn.005a35cc
mov dword [edi + 0x70], eax
lea eax, [ebp - 0x10]
push eax
push 0x5ffbb0
mov ecx, ebx
call fcn.0043836f
test eax, eax
je 0x438dd4
mov ax, word [ebp - 0x10]
mov word [edi + 0x26], ax
mov esi, dword [ebx + 0x124]
lea eax, [ebp - 0x10]
push eax
push 0x5ffba0
mov ecx, ebx
call fcn.0043836f
test eax, eax
je 0x438df4
mov eax, dword [ebp - 0x10]
mov dword [edi + 0x3c], eax
test esi, esi
je 0x438e07
movsx eax, word [edi + 0x26]
shl eax, 0xc
cdq
idiv dword [edi + 0x3c]
mov word [edi + 0x26], ax
lea eax, [ebp - 0x10]
push eax
push 0x5ffb90
mov ecx, ebx
call fcn.0043836f
test eax, eax
je 0x438e2a
movsx eax, word [ebp - 0x10]
shl eax, 0xc
cdq
idiv dword [edi + 0x3c]
mov word [edi + 0x28], ax
lea eax, [ebp - 0x10]
push eax
push 0x5ffb7c
mov ecx, ebx
call fcn.0043836f
test eax, eax
je 0x438e44
mov eax, dword [ebp - 0x10]
mov dword [edi + 0x44], eax
lea eax, [ebp - 0x10]
push eax
push 0x5ffb68
mov ecx, ebx
call fcn.0043836f
test eax, eax
je 0x438e64
mov eax, dword [ebp - 0x10]
imul eax, eax, 0x2e0
mov dword [edi + 0x30], eax
lea eax, [ebp - 0x10]
push eax
push 0x5ffb58
mov ecx, ebx
call fcn.0043836f
test eax, eax
je 0x438e87
mov eax, dword [ebp - 0x10]
mov dword [edi + 0x5c], eax
imul eax, eax, 0x2e0
mov dword [edi + 0x48], eax
lea eax, [ebp - 0x10]
push eax
push 0x5ffb44
mov ecx, ebx
call fcn.0043836f
test eax, eax
je 0x438ea7
mov eax, dword [ebp - 0x10]
imul eax, eax, 0x2e0
mov dword [edi + 0x40], eax
lea eax, [ebp - 0x10]
push eax
push 0x5ffb3c
mov ecx, ebx
call fcn.0043836f
test eax, eax
je 0x438ec1
mov al, byte [ebp - 0x10]
mov byte [edi + 0x25], al
lea eax, [ebp - 0x28]
push eax
push 0x5ffb24
mov ecx, ebx
call fcn.004382cc
test eax, eax
je 0x438f1c
fld dword [ebp - 0x28]
fmul dword [0x5d7a04]
call fcn.005a35cc
cmp byte [edi + 0x25], 1
mov dword [edi + 0x74], eax
mov dword [ebp - 0x14], 1
jle 0x438f1c
lea esi, [edi + 0x78]
mov ecx, ebx
call fcn.00438652
fst dword [ebp - 0x28]
fmul dword [0x5d7a04]
call fcn.005a35cc
inc dword [ebp - 0x14]
mov dword [esi], eax
movsx eax, byte [edi + 0x25]
add esi, 4
cmp dword [ebp - 0x14], eax
jl 0x438ef6
lea eax, [ebp - 0x28]
push eax
push 0x5ffb08
mov ecx, ebx
call fcn.004382cc
test eax, eax
je 0x438f72
fld dword [ebp - 0x28]
fmul dword [0x5d7a04]
call fcn.005a35cc
and dword [ebp - 0x14], 0
cmp byte [edi + 0x25], 0
mov dword [ebp - 0x10], eax
jle 0x438f72
lea esi, [edi + 0x74]
mov eax, dword [esi]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
imul dword [ebp - 0x10]
mov ecx, 0xc
shrd eax, edx, cl
inc dword [ebp - 0x14]
mov dword [esi], eax
movsx eax, byte [edi + 0x25]
add esi, 4
cmp dword [ebp - 0x14], eax
jl 0x438f4e
lea eax, [ebp - 0x10]
push eax
push 0x5ffaf4
mov ecx, ebx
call fcn.004382cc
test eax, eax
je 0x438f98
fld dword [ebp - 0x10]
fmul dword [0x5d7a04]
call fcn.005a35cc
mov word [edi + 0x6a], ax
lea eax, [ebp - 0x10]
push eax
push 0x5ffae4
mov ecx, ebx
call fcn.004382cc
test eax, eax
je 0x438fbd
fld dword [ebp - 0x10]
fmul dword [0x5d7a04]
call fcn.005a35cc
mov dword [edi + 0x34], eax
lea eax, [ebp - 0x10]
push eax
push 0x5ffad4
mov ecx, ebx
call fcn.004382cc
test eax, eax
je 0x438fe2
fld dword [ebp - 0x10]
fmul dword [0x5d7a04]
call fcn.005a35cc
mov dword [edi + 0x38], eax
mov ecx, dword [edi + 0x38]
mov eax, 0x333
cmp ecx, eax
jl 0x438ff9
mov eax, 0x2000
cmp ecx, eax
jg 0x438ff9
mov eax, ecx
mov dword [edi + 0x38], eax
lea eax, [ebp - 0x10]
push eax
push 0x5ffac0
mov ecx, ebx
call fcn.004382cc
test eax, eax
je 0x439024
fld dword [ebp - 0x10]
fmul dword [0x5d7a04]
call fcn.005a35cc
mov dword [edi + 0x160], eax
lea eax, [ebp - 0x10]
push eax
push 0x5ffab0
mov ecx, ebx
call fcn.0043836f
test eax, eax
je 0x43903e
mov eax, dword [ebp - 0x10]
mov dword [edi + 0x60], eax
lea eax, [ebp - 0x10]
push eax
push 0x5ffa94
mov ecx, ebx
call fcn.004382cc
test eax, eax
je 0x439063
fld dword [ebp - 0x10]
fmul dword [0x5d7a04]
call fcn.005a35cc
mov dword [edi + 0x64], eax
lea eax, [ebp - 0x10]
push eax
push 0x5ffa7c
mov ecx, ebx
call fcn.004382cc
test eax, eax
je 0x43908c
fld dword [ebp - 0x10]
fmul dword [0x5d7a04]
call fcn.005a35cc
mov word [edi + 0x132], ax
lea eax, [ebp - 0x10]
push eax
push 0x5ffa64
mov ecx, ebx
call fcn.004382cc
test eax, eax
je 0x4390b5
fld dword [ebp - 0x10]
fmul dword [0x5d7a04]
call fcn.005a35cc
mov word [edi + 0x130], ax
lea eax, [ebp - 0x10]
push eax
push 0x5ffa50
mov ecx, ebx
call fcn.004382cc
test eax, eax
je 0x4390dd
fld dword [ebp - 0x10]
fmul dword [0x5d7a04]
call fcn.005a35cc
mov dword [edi + 0x12c], eax
lea eax, [ebp - 0x10]
push eax
push 0x5ffa3c
mov ecx, ebx
call fcn.004382cc
test eax, eax
je 0x439105
fld dword [ebp - 0x10]
fmul dword [0x5d7a04]
call fcn.005a35cc
mov dword [edi + 0x128], eax
lea eax, [ebp - 0x10]
push eax
push 0x5ffa20
mov ecx, ebx
call fcn.004382cc
test eax, eax
je 0x43912d
fld dword [ebp - 0x10]
fmul dword [0x5d7a04]
call fcn.005a35cc
mov dword [edi + 0x120], eax
lea eax, [ebp - 0x10]
push eax
push 0x5ffa00
mov ecx, ebx
call fcn.004382cc
test eax, eax
je 0x439155
fld dword [ebp - 0x10]
fmul dword [0x5d7a04]
call fcn.005a35cc
mov dword [edi + 0x124], eax
lea eax, [ebp - 0x10]
push eax
push 0x5ff9ec
mov ecx, ebx
call fcn.004382cc
test eax, eax
je 0x43917d
fld dword [ebp - 0x10]
fmul dword [0x5d7a04]
call fcn.005a35cc
mov dword [edi + 0x134], eax
lea eax, [ebp - 0x10]
push eax
push 0x5ff9d8
mov ecx, ebx
call fcn.004382cc
test eax, eax
je 0x4391a5
fld dword [ebp - 0x10]
fmul dword [0x5d7a04]
call fcn.005a35cc
mov dword [edi + 0x138], eax
lea eax, [ebp - 0x10]
push eax
push 0x5ff9c0
mov ecx, ebx
call fcn.004382cc
test eax, eax
je 0x4391ce
fld dword [ebp - 0x10]
fmul dword [0x5d7a04]
call fcn.005a35cc
mov word [edi + 0x13c], ax
lea eax, [ebp - 0x10]
push eax
push 0x5ff9a8
mov ecx, ebx
call fcn.004382cc
test eax, eax
je 0x4391f7
fld dword [ebp - 0x10]
fmul dword [0x5d7a04]
call fcn.005a35cc
mov word [edi + 0x13e], ax
lea eax, [ebp - 0x10]
push eax
push 0x5ff98c
mov ecx, ebx
call fcn.004382cc
test eax, eax
je 0x43921f
fld dword [ebp - 0x10]
fmul dword [0x5d7a04]
call fcn.005a35cc
mov dword [edi + 0x140], eax
lea eax, [ebp - 0x10]
push eax
push 0x5ff97c
mov ecx, ebx
call fcn.004382cc
test eax, eax
je 0x439248
fld dword [ebp - 0x10]
fmul dword [0x5d7a04]
call fcn.005a35cc
mov word [edi + 0x144], ax
lea eax, [ebp - 0x10]
push eax
push 0x5ff96c
mov ecx, ebx
call fcn.004382cc
test eax, eax
je 0x439271
fld dword [ebp - 0x10]
fmul dword [0x5d7a04]
call fcn.005a35cc
mov word [edi + 0x146], ax
lea eax, [ebp - 0x10]
push eax
push 0x5ff95c
mov ecx, ebx
call fcn.004382cc
test eax, eax
je 0x43929a
fld dword [ebp - 0x10]
fmul dword [0x5d7a04]
call fcn.005a35cc
mov word [edi + 0x148], ax
lea eax, [ebp - 0x10]
push eax
push 0x5ff94c
mov ecx, ebx
call fcn.004382cc
test eax, eax
je 0x4392c2
fld dword [ebp - 0x10]
fmul dword [0x5d7a04]
call fcn.005a35cc
mov dword [edi + 0x14c], eax
lea eax, [ebp - 0x10]
push eax
push 0x5ff930
mov ecx, ebx
call fcn.004382cc
test eax, eax
je 0x4392ea
fld dword [ebp - 0x10]
fmul dword [0x5d7a04]
call fcn.005a35cc
mov dword [edi + 0x150], eax
lea eax, [ebp - 0x10]
push eax
push 0x5ff914
mov ecx, ebx
call fcn.004382cc
test eax, eax
je 0x439312
fld dword [ebp - 0x10]
fmul dword [0x5d7a04]
call fcn.005a35cc
mov dword [edi + 0x154], eax
lea eax, [ebp - 0x10]
push eax
push 0x5ff904
mov ecx, ebx
call fcn.0043836f
test eax, eax
je 0x43932c
mov eax, dword [ebp - 0x10]
mov dword [edi + 0x20], eax
lea eax, [ebp - 0x10]
push eax
push 0x5ff8f0
mov ecx, ebx
call fcn.0043836f
test eax, eax
je 0x43934b
mov ax, word [ebp - 0x10]
mov word [edi + 0x11e], ax
lea eax, [ebp - 0x10]
push eax
push 0x5ff8dc
mov ecx, ebx
call fcn.004382cc
test eax, eax
je 0x439373
fld dword [ebp - 0x10]
fmul dword [0x5d7a04]
call fcn.005a35cc
mov dword [edi + 0x17c], eax
and dword [edi + 0x180], 0
lea eax, [ebp - 0x10]
push eax
push 0x5ff8cc
mov ecx, ebx
call fcn.0043836f
test eax, eax
je 0x439397
mov eax, dword [ebp - 0x10]
mov dword [edi + 0x180], eax
cmp dword [edi + 0x180], 0
je 0x4398f6
and dword [ebp - 0x18], 0
lea esi, [edi + 0x188]
mov dword [ebp - 0x24], esi
add esi, 0xfc
test esi, esi
je 0x4397dd
lea eax, [ebp - 0x10]
push eax
push 0x5ff8bc
mov ecx, ebx
call fcn.0043836f
test eax, eax
je 0x4394e1
cmp byte [edi + 0x25], 1
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x18], eax
mov dword [esi + 4], eax
mov dword [ebp - 0x14], 1
jle 0x43940f
lea eax, [esi + 8]
mov dword [ebp - 0x1c], eax
mov ecx, ebx
call fcn.004386b3
mov ecx, dword [ebp - 0x1c]
inc dword [ebp - 0x14]
add dword [ebp - 0x1c], 4
mov dword [ecx], eax
movsx eax, byte [edi + 0x25]
cmp dword [ebp - 0x14], eax
jl 0x4393f3
mov eax, dword [ebp + 8]
add eax, 0x610
xor edi, edi
cmp byte [eax + 0x25], 0
jle 0x4394e1
lea eax, [edi + 1]
push eax
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0xb0]
push 0x5ff8a4
push eax
call fcn.005a3b0e
add esp, 0xc
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0xb0]
push eax
mov ecx, ebx
call fcn.0043836f
test eax, eax
je 0x43945a
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x18], eax
mov cl, byte [ebp - 0x18]
lea eax, [edi + edi*2 + 9]
mov byte [esi + eax*4], cl
lea eax, [edi + edi*2]
lea eax, [esi + eax*4]
mov ecx, ebx
mov dword [ebp - 0x1c], eax
call fcn.004386b3
mov ecx, dword [ebp - 0x1c]
mov byte [ecx + 0x25], al
mov ecx, dword [ebp - 0x14]
push 1
pop eax
cmp dword [esi + ecx*4], eax
mov dword [ebp - 0x20], eax
jle 0x4394ca
mov eax, dword [ebp - 0x1c]
add eax, 0x26
mov dword [ebp - 0x1c], eax
mov ecx, ebx
call fcn.004386b3
cmp dword [ebx + 0x124], 0
mov ecx, dword [ebp - 0x1c]
mov byte [ecx], al
je 0x4394ca
mov ecx, ebx
call fcn.004386b3
mov ecx, dword [ebp - 0x20]
add dword [ebp - 0x1c], 2
lea edx, [edi + edi*2]
lea edx, [ecx + edx*2]
mov byte [esi + edx*2 + 0x25], al
mov eax, dword [ebp - 0x14]
inc ecx
cmp ecx, dword [esi + eax*4]
mov dword [ebp - 0x20], ecx
jl 0x439491
mov eax, dword [ebp + 8]
mov edi, dword [ebp - 0x14]
add eax, 0x610
movsx eax, byte [eax + 0x25]
cmp edi, eax
jl 0x439423
lea eax, [ebp - 0x10]
push eax
push 0x5ff890
mov ecx, ebx
call fcn.0043836f
test eax, eax
je 0x43955b
mov edi, dword [ebp - 0x10]
lea eax, [ebp - 0x10]
push eax
push 0x5ff874
mov ecx, ebx
mov dword [esi + 0x1c], edi
call fcn.0043836f
test eax, eax
je 0x439515
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x18], eax
mov al, byte [ebp - 0x18]
mov ecx, ebx
mov byte [esi + 0x6c], al
call fcn.004386b3
push 1
mov byte [esi + 0x6d], al
pop eax
cmp edi, eax
mov dword [ebp - 0x14], eax
jle 0x43955b
lea edi, [esi + 0x6f]
mov ecx, ebx
call fcn.004386b3
cmp dword [ebx + 0x124], 0
mov byte [edi - 1], al
je 0x43955b
mov ecx, ebx
call fcn.004386b3
inc dword [ebp - 0x14]
mov byte [edi], al
mov eax, dword [ebp - 0x14]
inc edi
inc edi
cmp eax, dword [esi + 0x1c]
jl 0x439532
lea eax, [ebp - 0x10]
push eax
push 0x5ff860
mov ecx, ebx
call fcn.0043836f
test eax, eax
je 0x4395d5
mov edi, dword [ebp - 0x10]
lea eax, [ebp - 0x10]
push eax
push 0x5ff840
mov ecx, ebx
mov dword [esi + 0x20], edi
call fcn.0043836f
test eax, eax
je 0x43958f
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x18], eax
mov al, byte [ebp - 0x18]
mov ecx, ebx
mov byte [esi + 0x74], al
call fcn.004386b3
push 1
mov byte [esi + 0x75], al
pop eax
cmp edi, eax
mov dword [ebp - 0x14], eax
jle 0x4395d5
lea edi, [esi + 0x77]
mov ecx, ebx
call fcn.004386b3
cmp dword [ebx + 0x124], 0
mov byte [edi - 1], al
je 0x4395d5
mov ecx, ebx
call fcn.004386b3
inc dword [ebp - 0x14]
mov byte [edi], al
mov eax, dword [ebp - 0x14]
inc edi
inc edi
cmp eax, dword [esi + 0x20]
jl 0x4395ac
lea eax, [ebp - 0x20]
push eax
push 0x5ff830
mov ecx, ebx
call fcn.0043836f
test eax, eax
je 0x4397d7
mov eax, dword [ebp - 0x20]
mov dword [esi + 0xc4], eax
lea eax, [ebp - 0x10]
push eax
push 0x5ff818
mov ecx, ebx
call fcn.004382cc
test eax, eax
je 0x43961b
fld dword [ebp - 0x10]
fmul dword [0x5d7a04]
call fcn.005a35cc
mov dword [ebp - 0x18], eax
mov ax, word [ebp - 0x18]
mov ecx, ebx
mov word [esi + 0xc8], ax
call fcn.00438652
fmul dword [0x5d7a04]
call fcn.005a35cc
push 1
pop edi
cmp dword [ebp - 0x20], edi
mov word [esi + 0xca], ax
mov dword [ebp - 0x14], edi
jle 0x439698
lea edi, [esi + 0xce]
mov ecx, ebx
call fcn.00438652
fmul dword [0x5d7a04]
call fcn.005a35cc
cmp dword [ebx + 0x124], 0
mov word [edi - 2], ax
je 0x439695
mov ecx, ebx
call fcn.00438652
fmul dword [0x5d7a04]
call fcn.005a35cc
inc dword [ebp - 0x14]
mov word [edi], ax
mov eax, dword [ebp - 0x14]
add edi, 4
cmp eax, dword [esi + 0xc4]
jl 0x439650
push 1
pop edi
lea eax, [ebp - 0x10]
push eax
push 0x5ff800
mov ecx, ebx
call fcn.004382cc
test eax, eax
je 0x4396bd
fld dword [ebp - 0x10]
fmul dword [0x5d7a04]
call fcn.005a35cc
mov dword [ebp - 0x18], eax
mov ax, word [ebp - 0x18]
mov ecx, ebx
mov word [esi + 0xdc], ax
call fcn.00438652
fmul dword [0x5d7a04]
call fcn.005a35cc
cmp dword [esi + 0xc4], edi
mov word [esi + 0xde], ax
mov dword [ebp - 0x14], edi
jle 0x439737
lea edi, [esi + 0xe2]
mov ecx, ebx
call fcn.00438652
fmul dword [0x5d7a04]
call fcn.005a35cc
cmp dword [ebx + 0x124], 0
mov word [edi - 2], ax
je 0x439737
mov ecx, ebx
call fcn.00438652
fmul dword [0x5d7a04]
call fcn.005a35cc
inc dword [ebp - 0x14]
mov word [edi], ax
mov eax, dword [ebp - 0x14]
add edi, 4
cmp eax, dword [esi + 0xc4]
jl 0x4396f2
lea eax, [ebp - 0x10]
push eax
push 0x5ff7e8
mov ecx, ebx
call fcn.004382cc
test eax, eax
je 0x43975b
fld dword [ebp - 0x10]
fmul dword [0x5d7a04]
call fcn.005a35cc
jmp 0x43975e
mov eax, dword [ebp - 0x18]
mov ecx, ebx
mov word [esi + 0xf0], ax
call fcn.00438652
fmul dword [0x5d7a04]
call fcn.005a35cc
push 1
mov word [esi + 0xf2], ax
pop eax
cmp dword [esi + 0xc4], eax
mov dword [ebp - 0x14], eax
jle 0x4397d7
lea edi, [esi + 0xf6]
mov ecx, ebx
call fcn.00438652
fmul dword [0x5d7a04]
call fcn.005a35cc
cmp dword [ebx + 0x124], 0
mov word [edi - 2], ax
je 0x4397d7
mov ecx, ebx
call fcn.00438652
fmul dword [0x5d7a04]
call fcn.005a35cc
inc dword [ebp - 0x14]
mov word [edi], ax
mov eax, dword [ebp - 0x14]
add edi, 4
cmp eax, dword [esi + 0xc4]
jl 0x439792
mov dword [esi], 1
mov eax, dword [ebp - 0x24]
lea esi, [eax + 8]
push 0x5ff7e0
push esi
call fcn.005a3b0e
mov eax, dword [ebp + 8]
and dword [ebp - 0x20], 0
lea edi, [eax + 0x610]
movsx eax, byte [edi + 0x25]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x24]
mov dword [ecx], eax
lea eax, [ebp - 0x10]
push eax
push 0x5ff7cc
mov ecx, ebx
call fcn.0043836f
test eax, eax
je 0x4398d5
mov al, byte [ebp - 0x10]
mov byte [esi + 0x10], al
movsx eax, byte [edi + 0x25]
push 1
pop ecx
cmp eax, ecx
mov dword [ebp - 0x14], ecx
jle 0x43984c
mov ecx, ebx
call fcn.004386b3
mov ecx, dword [ebp - 0x14]
inc dword [ebp - 0x14]
mov byte [esi + ecx + 0x10], al
movsx eax, byte [edi + 0x25]
cmp dword [ebp - 0x14], eax
jl 0x439832
lea eax, [ebp - 0x10]
push eax
push 0x5ff7b4
mov ecx, ebx
call fcn.0043836f
test eax, eax
je 0x439866
mov al, byte [ebp - 0x10]
mov byte [esi + 0x16], al
lea eax, [ebp - 0x10]
push eax
push 0x5ff798
mov ecx, ebx
call fcn.0043836f
test eax, eax
je 0x439880
mov al, byte [ebp - 0x10]
mov byte [esi + 0x17], al
lea eax, [ebp - 0x10]
push eax
push 0x5ff784
mov ecx, ebx
call fcn.0043836f
test eax, eax
je 0x43989a
mov al, byte [ebp - 0x10]
mov byte [esi + 0x18], al
lea eax, [ebp - 0x10]
push eax
push 0x5ff778
mov ecx, ebx
call fcn.0043836f
test eax, eax
je 0x4398b4
mov al, byte [ebp - 0x10]
mov byte [esi + 0x19], al
lea eax, [ebp - 0x10]
push eax
push 0x5ff764
mov ecx, ebx
call fcn.0043836f
test eax, eax
je 0x4398ce
mov al, byte [ebp - 0x10]
mov byte [esi + 0x1a], al
mov dword [ebp - 0x20], 1
mov eax, dword [ebp - 0x24]
and dword [edi + 0x184], 0
cmp dword [ebp - 0x20], 0
mov dword [eax + 4], 1
je 0x4398f6
push edi
push 0
mov ecx, eax
call fcn.0048c2f8
mov ecx, edi
call fcn.0046f247
lea eax, [ebp - 0x10]
push eax
push 0x5ff754
mov ecx, ebx
call fcn.004382cc
test eax, eax
je 0x43992a
fld dword [ebp - 0x10]
fmul dword [0x5d7a04]
call fcn.005a35cc
mov esi, dword [ebp + 8]
mov dword [esi + 0x9a0], eax
jmp 0x43992d
mov esi, dword [ebp + 8]
lea eax, [ebp + 8]
push eax
push 0x5ff744
mov ecx, ebx
call fcn.004382cc
test eax, eax
je 0x439955
fld dword [ebp + 8]
fmul dword [0x5d7a04]
call fcn.005a35cc
mov dword [esi + 0x998], eax
lea eax, [ebp + 8]
push eax
push 0x5ff738
mov ecx, ebx
call fcn.004382cc
test eax, eax
je 0x43997d
fld dword [ebp + 8]
fmul dword [0x5d7a04]
call fcn.005a35cc
mov dword [esi + 0x99c], eax
add esi, 0x9b0
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x10], 2
and byte [ebp - 0x1b4], 0
lea eax, [ebp - 0x1b4]
push eax
push 0x5ff730
mov ecx, ebx
call fcn.00438411
test eax, eax
je 0x439a0c
mov esi, dword [ebp - 0x18]
cmp dword [esi], 0
jne 0x4399da
push 0x1294
call fcn.005bca7e
pop ecx
mov dword [ebp + 8], eax
and dword [ebp - 4], 0
test eax, eax
je 0x4399d2
mov ecx, eax
call fcn.00402b01
jmp 0x4399d4
xor eax, eax
or dword [ebp - 4], 0xffffffff
mov dword [esi], eax
or ecx, 0xffffffff
xor eax, eax
lea edi, [ebp - 0x1b4]
repne scasb al, byte es:[edi]
mov eax, dword [ebp - 0x18]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, dword [eax]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [eax]
mov dword [eax + 0x208], 1
mov eax, dword [ebp - 0x18]
cmp dword [eax], 0
je 0x439c60
and byte [ebp - 0x2b8], 0
lea eax, [ebp - 0x2b8]
push eax
push 0x5ff724
mov ecx, ebx
call fcn.00438411
test eax, eax
je 0x439a64
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
or ecx, 0xffffffff
lea edx, [eax + 0x104]
xor eax, eax
lea edi, [ebp - 0x2b8]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
shr ecx, 2
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea eax, [ebp - 0x30]
push eax
push 0x5ff70c
mov ecx, ebx
call fcn.0043836f
test eax, eax
je 0x439a86
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x30]
mov eax, dword [eax]
mov dword [eax + 0x20c], ecx
lea eax, [ebp - 0x70]
push eax
push 0x5ff6f4
mov ecx, ebx
call fcn.00438411
test eax, eax
je 0x439c60
mov eax, dword [ebp - 0x18]
mov edx, dword [eax]
or ecx, 0xffffffff
xor eax, eax
lea edi, [ebx + 8]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
lea esi, [edx + 0xe94]
mov dword [ebp + 8], esi
shr ecx, 2
mov esi, edi
mov edi, dword [ebp + 8]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp byte [ebp - 0x70], 0
je 0x439c60
lea ecx, [edx + 0xe90]
mov dword [ebp - 0x14], ecx
jmp 0x439ae5
mov ecx, dword [ebp - 0x14]
mov eax, ecx
cmp dword [eax], 0x20
jge 0x439c60
mov edi, 0x5ff6dc
lea esi, [ebp - 0x70]
mov dl, byte [esi]
mov al, dl
cmp dl, byte [edi]
jne 0x439b1a
test al, al
je 0x439b16
mov dl, byte [esi + 1]
mov al, dl
cmp dl, byte [edi + 1]
jne 0x439b1a
inc esi
inc esi
inc edi
inc edi
test al, al
jne 0x439af8
xor eax, eax
jmp 0x439b1f
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x439c60
cmp byte [ebp - 0x70], 0
je 0x439c60
mov eax, dword [ecx]
and byte [ebp + 0xb], 0
and dword [ebp - 0x20], 0
xor ecx, ecx
test eax, eax
mov dword [ebp - 0x24], eax
jle 0x439b9f
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
add eax, 0x211
mov dword [ebp - 0x1c], eax
mov edi, dword [ebp - 0x1c]
lea esi, [ebp - 0x70]
mov dl, byte [edi]
mov al, dl
cmp dl, byte [esi]
jne 0x439b79
test al, al
je 0x439b75
mov dl, byte [edi + 1]
mov al, dl
cmp dl, byte [esi + 1]
jne 0x439b79
inc edi
inc edi
inc esi
inc esi
test al, al
jne 0x439b57
xor eax, eax
jmp 0x439b7e
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x439b89
mov byte [ebp + 0xb], 1
mov dword [ebp - 0x20], ecx
add dword [ebp - 0x1c], 0x64
inc ecx
cmp ecx, dword [ebp - 0x24]
jl 0x439b51
cmp byte [ebp + 0xb], 0
je 0x439b9f
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x18]
imul eax, eax, 0x64
mov edi, dword [ecx]
lea esi, [eax + edi]
push 0x40
lea eax, [ebp - 0x70]
push eax
lea eax, [esi + 0x211]
push eax
call fcn.005a3a10
and byte [esi + 0x250], 0
add esp, 0xc
mov ecx, ebx
mov byte [esi + 0x210], 1
call fcn.00438652
mov ecx, ebx
fstp dword [esi + 0x254]
call fcn.00438652
mov eax, dword [ebp - 0x24]
add eax, 6
imul eax, eax, 0x64
mov ecx, ebx
fstp dword [eax + edi]
call fcn.00438652
mov ecx, ebx
fstp dword [esi + 0x25c]
call fcn.00438652
fstp dword [esi + 0x260]
mov ecx, ebx
call fcn.00438652
fstp dword [esi + 0x264]
cmp byte [ebp + 0xb], 0
jne 0x439c22
mov eax, dword [ebp - 0x14]
inc dword [eax]
mov ecx, ebx
call fcn.00438618
test eax, eax
je 0x439c56
lea ecx, [ebp - 0x70]
test ecx, ecx
je 0x439c56
or ecx, 0xffffffff
mov edi, eax
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
shr ecx, 2
lea edx, [ebp - 0x70]
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp byte [ebp - 0x70], 0
jne 0x439ae2
add dword [ebp - 0x18], 4
dec dword [ebp - 0x10]
jne 0x43998d
cmp dword [ebx + 0x11c], 0
pop edi
je 0x439c7b
and dword [ebp - 0x2c], 0
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0xc]
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret 4