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

Disassembly:
sub esp, 0x61c
mov eax, dword [0x347765c8]
xor eax, esp
mov dword [esp + 0x618], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [esp + 0x63c]
mov ecx, dword [0x34774184]
mov edx, dword [0x34774188]
mov dword [esp + 0x7c], eax
or eax, 0xffffffff
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x60], eax
mov eax, dword [0x3477418c]
mov dword [esp + 0x114], eax
mov eax, dword [esp + 0x658]
mov dword [esp + 0x10c], ecx
mov ecx, dword [0x34774190]
mov dword [esp + 0x110], edx
mov edx, dword [eax]
mov dword [esp + 0x118], ecx
mov ecx, dword [eax + 4]
mov dword [esp + 0xbc], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x65c]
mov dword [esp + 0xc0], ecx
mov ecx, dword [eax]
mov dword [esp + 0xc4], edx
mov edx, dword [eax + 4]
xor ebp, ebp
mov dword [esp + 0xac], ecx
mov ecx, dword [eax + 8]
mov dword [esp + 0xb0], edx
mov edx, dword [eax + 0xc]
mov edi, dword [esp + 0x630]
mov dword [esp + 0xb4], ecx
mov ecx, dword [0x347efae8]
lea eax, [esp + 0x28]
push eax
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x68], ebp
mov dword [esp + 0x7c], ebp
mov dword [esp + 0xbc], edx
mov edx, dword [ecx + 0xf8]
push edi
mov dword [esp + 0x60], ebp
mov dword [esp + 0x50], ebp
mov dword [esp + 0x78], ebp
call edx
mov ebx, dword [esp + 0x650]
mov esi, dword [esp + 0x634]
xor ecx, ecx
cmp byte [esp + 0x640], 4
mov eax, 1
sete cl
cmp ebx, ebp
mov dword [esp + 0x3c], 0xc
mov dword [esp + 0x40], ebp
mov dword [esp + 0x44], eax
mov dword [esp + 0x50], ecx
jne 0x3477cffc
cmp dword [esp + 0x654], ebp
je 0x3477d167
mov dword [esp + 0x58], eax
mov eax, dword [0x347efae8]
mov ecx, dword [eax + 0x228]
mov edx, esi
mov ecx, dword [ecx + edx*4]
mov ecx, dword [ecx + 0xc]
mov edx, dword [eax + 0x1b8]
push 0x10
push ecx
mov dword [esp + 0x74], ecx
call edx
mov esi, eax
cmp esi, ebp
jl 0x3477e44d
mov eax, dword [0x347efae8]
mov ecx, dword [eax + 0x228]
mov edx, dword [esp + 0x638]
mov ecx, dword [ecx + edx*4]
mov ecx, dword [ecx + 0xc]
mov edx, dword [eax + 0x1b8]
push 0x10
push ecx
mov dword [esp + 0x2c], ecx
call edx
mov esi, eax
cmp esi, ebp
jl 0x3477e44d
push 0x4bc
lea eax, [esp + 0x170]
push ebp
push eax
call sub.msvcr80.dll_memset
mov edx, dword [esp + 0x640]
add esp, 0xc
lea ecx, [esp + 0x14c]
push ecx
push edx
push edi
call fcn.3477ae26
mov esi, eax
cmp esi, ebp
jl 0x3477e44d
mov ecx, dword [esp + 0x638]
lea eax, [esp + 0x13c]
push eax
push ecx
push edi
call fcn.3477ae26
mov esi, eax
cmp esi, ebp
jl 0x3477e44d
mov eax, 0x10
lea ecx, [esp + 0x13c]
lea edx, [esp + 0x14c]
lea ecx, [ecx]
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x3477d0e0
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x3477d0c8
cmp eax, ebp
je 0x3477d145
movzx esi, byte [edx]
movzx ebp, byte [ecx]
sub esi, ebp
jne 0x3477d33e
sub eax, 1
xor ebp, ebp
add ecx, 1
add edx, 1
cmp eax, ebp
je 0x3477d145
movzx esi, byte [edx]
movzx ebp, byte [ecx]
sub esi, ebp
jne 0x3477d33e
sub eax, 1
xor ebp, ebp
add ecx, 1
add edx, 1
cmp eax, ebp
je 0x3477d145
movzx esi, byte [edx]
movzx ebp, byte [ecx]
sub esi, ebp
jne 0x3477d33e
sub eax, 1
xor ebp, ebp
add ecx, 1
add edx, 1
cmp eax, ebp
je 0x3477d145
movzx esi, byte [edx]
movzx edx, byte [ecx]
sub esi, edx
jne 0x3477d340
xor eax, eax
cmp eax, ebp
je 0x3477d355
mov eax, dword [0x347efae8]
mov ecx, dword [eax + 0x108]
push edi
call ecx
mov esi, 0xffffb179
jmp 0x3477e44d
mov eax, dword [0x347efae8]
mov ecx, dword [eax + 0x60]
push 0x80400002
push 0x347726d8
lea edx, [esp + 0x38]
push edx
push esi
push edi
call ecx
test eax, eax
jge 0x3477d19f
mov edx, dword [0x347efae8]
mov eax, dword [edx + 0x108]
push edi
call eax
mov eax, 0xffffb154
jmp 0x3477e56a
mov edx, dword [esp + 0x638]
mov eax, dword [0x347efae8]
push 0x80400002
push 0x347726d8
lea ecx, [esp + 0x68]
push ecx
mov ecx, dword [eax + 0x60]
push edx
push edi
call ecx
test eax, eax
jge 0x3477d000
mov edx, dword [esp + 0x30]
mov eax, dword [0x347efae8]
mov ecx, dword [eax + 0x68]
push edx
push edi
call ecx
mov edx, dword [0x347efae8]
mov eax, dword [edx + 0x108]
push edi
call eax
mov edx, dword [0x347efae8]
mov eax, dword [edx + 0x13c]
push 0x80
push 0xf
push 0x10
lea ecx, [esp + 0xc8]
push ecx
push 0x347724a8
push ebp
push 0x347712a0
push 0x3477128c
push esi
push edi
call eax
test eax, eax
jl 0x3477d268
push 0x1388
call dword [sym.imp.kernel32.dll_Sleep]
push ebp
push ebp
lea ecx, [esp + 0x98]
push ecx
mov ecx, dword [esp + 0x644]
lea edx, [esp + 0x24]
push edx
mov edx, dword [0x347efae8]
push 0x10
lea eax, [esp + 0x120]
push eax
mov eax, dword [edx + 0x140]
push 0x347724a8
push ebp
push 0x347712a0
push 0x3477128c
push ecx
push edi
call eax
mov ecx, dword [0x347efae8]
mov edx, dword [ecx + 0x13c]
push 0xc0
push 0xf
push ebp
push ebp
push 0x347724a8
push ebp
push 0x347712a0
push 0x3477128c
push esi
push edi
call edx
mov eax, 0x10
lea ecx, [esp + 0x10c]
lea edx, [esp + 0xbc]
lea esp, [esp]
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x3477d2bf
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x3477d2a7
cmp eax, ebp
je 0x3477d32b
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x3477d30e
sub eax, 1
add ecx, 1
add edx, 1
cmp eax, ebp
je 0x3477d32b
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x3477d30e
sub eax, 1
add ecx, 1
add edx, 1
cmp eax, ebp
je 0x3477d32b
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x3477d30e
sub eax, 1
add ecx, 1
add edx, 1
cmp eax, ebp
je 0x3477d32b
movzx esi, byte [edx]
movzx eax, byte [ecx]
sub esi, eax
je 0x3477d32b
cmp esi, ebp
mov eax, 1
jg 0x3477d32d
or eax, 0xffffffff
neg eax
sbb eax, eax
and eax, 0xffffff95
add eax, 0xffffb1bf
jmp 0x3477e56a
xor eax, eax
neg eax
sbb eax, eax
and eax, 0xffffff95
add eax, 0xffffb1bf
jmp 0x3477e56a
xor ebp, ebp
cmp esi, ebp
mov eax, 1
jg 0x3477d147
or eax, 0xffffffff
jmp 0x3477d147
mov eax, dword [esp + 0x634]
mov ecx, dword [0x347efae8]
lea edx, [esp + 0x84]
push edx
mov edx, dword [ecx + 0x198]
push eax
call edx
mov esi, eax
cmp esi, ebp
jl 0x3477e44d
mov ecx, dword [esp + 0x638]
mov edx, dword [0x347efae8]
lea eax, [esp + 0x80]
push eax
mov eax, dword [edx + 0x198]
push ecx
call eax
mov esi, eax
cmp esi, ebp
jl 0x3477e44d
mov eax, dword [esp + 0x84]
test al, 0x40
mov ecx, dword [esp + 0x80]
je 0x3477d3d5
test cl, 0x40
je 0x3477d3d5
mov ecx, dword [0x347efae8]
mov edx, dword [ecx + 0x108]
push edi
call edx
mov esi, 0xffffb148
jmp 0x3477e44d
test eax, 0x80000
jne 0x3477d3e4
test ecx, 0x80000
je 0x3477d3ee
mov esi, 0xffffb0ab
jmp 0x3477e44d
mov edx, dword [esp + 0x634]
push ebp
push ebp
lea eax, [esp + 0x70]
push eax
push ebp
push ebp
lea ecx, [esp + 0xd0]
push ecx
push edx
push edi
call fcn.347ad41a
mov esi, eax
cmp esi, ebp
jl 0x3477e44d
cmp ebx, ebp
jne 0x3477d45e
cmp dword [esp + 0x68], ebp
je 0x3477d45e
mov ebx, dword [esp + 0x634]
push ebp
push ebp
lea eax, [esp + 0xc4]
push eax
lea ecx, [esp + 0x84]
push ecx
push ebp
push ebp
push ebx
push edi
call fcn.347ba88f
mov esi, eax
cmp esi, ebp
jl 0x3477e44d
push ebx
push edi
call fcn.347ade84
mov esi, eax
cmp esi, ebp
jl 0x3477e44d
mov ebx, dword [esp + 0x638]
push ebp
push ebp
lea edx, [esp + 0x6c]
push edx
push ebp
push ebp
lea eax, [esp + 0xc0]
push eax
push ebx
push edi
call fcn.347ad41a
mov esi, eax
cmp esi, ebp
jl 0x3477e44d
cmp dword [esp + 0x654], ebp
jne 0x3477d4cc
cmp dword [esp + 0x64], ebp
je 0x3477d4cc
push ebp
push ebp
lea ecx, [esp + 0xb4]
push ecx
lea edx, [esp + 0x84]
push edx
push ebp
push ebp
push ebx
push edi
call fcn.347ba88f
mov esi, eax
cmp esi, ebp
jl 0x3477e44d
push ebx
push edi
call fcn.347ade84
mov esi, eax
cmp esi, ebp
jl 0x3477e44d
mov eax, 0x10
lea ecx, [esp + 0xac]
lea edx, [esp + 0xbc]
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x3477d4f7
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x3477d4df
cmp eax, ebp
je 0x3477d554
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x3477d546
sub eax, 1
add ecx, 1
add edx, 1
cmp eax, ebp
je 0x3477d554
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x3477d546
sub eax, 1
add ecx, 1
add edx, 1
cmp eax, ebp
je 0x3477d554
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x3477d546
sub eax, 1
add ecx, 1
add edx, 1
cmp eax, ebp
je 0x3477d554
movzx esi, byte [edx]
movzx eax, byte [ecx]
sub esi, eax
je 0x3477d554
cmp esi, ebp
mov eax, 1
jg 0x3477d556
or eax, 0xffffffff
jmp 0x3477d556
xor eax, eax
cmp eax, ebp
jne 0x3477d573
mov ecx, dword [0x347efae8]
mov edx, dword [ecx + 0x108]
push edi
call edx
mov esi, 0xffffb1bf
jmp 0x3477e44d
mov edx, dword [esp + 0x634]
lea eax, [esp + 0x18]
push eax
push 0x10
lea ecx, [esp + 0x124]
push ecx
push 5
push edx
push edi
call fcn.347a166d
mov esi, eax
cmp esi, ebp
jl 0x3477e44d
mov edx, dword [esp + 0x638]
lea eax, [esp + 0x18]
push eax
push 0x10
lea ecx, [esp + 0x164]
push ecx
push 5
push edx
push edi
call fcn.347a166d
mov esi, eax
cmp esi, ebp
jl 0x3477e44d
mov eax, 0x10
lea ecx, [esp + 0x11c]
lea edx, [esp + 0xbc]
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x3477d5f0
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x3477d5d8
cmp eax, ebp
je 0x3477d64d
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x3477d63f
sub eax, 1
add ecx, 1
add edx, 1
cmp eax, ebp
je 0x3477d64d
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x3477d63f
sub eax, 1
add ecx, 1
add edx, 1
cmp eax, ebp
je 0x3477d64d
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x3477d63f
sub eax, 1
add ecx, 1
add edx, 1
cmp eax, ebp
je 0x3477d64d
movzx esi, byte [edx]
movzx eax, byte [ecx]
sub esi, eax
je 0x3477d64d
cmp esi, ebp
mov eax, 1
jg 0x3477d64f
or eax, 0xffffffff
jmp 0x3477d64f
xor eax, eax
cmp eax, ebp
jne 0x3477d6fe
mov eax, 0x10
lea ecx, [esp + 0x15c]
lea edx, [esp + 0xac]
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x3477d682
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x3477d66a
cmp eax, ebp
je 0x3477d6df
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x3477d6d1
sub eax, 1
add ecx, 1
add edx, 1
cmp eax, ebp
je 0x3477d6df
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x3477d6d1
sub eax, 1
add ecx, 1
add edx, 1
cmp eax, ebp
je 0x3477d6df
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x3477d6d1
sub eax, 1
add ecx, 1
add edx, 1
cmp eax, ebp
je 0x3477d6df
movzx esi, byte [edx]
movzx ecx, byte [ecx]
sub esi, ecx
je 0x3477d6df
cmp esi, ebp
mov eax, 1
jg 0x3477d6e1
or eax, 0xffffffff
jmp 0x3477d6e1
xor eax, eax
cmp eax, ebp
jne 0x3477d6fe
mov edx, dword [0x347efae8]
mov eax, dword [edx + 0x108]
push edi
call eax
mov esi, 0xffffb1bd
jmp 0x3477e44d
mov ebx, dword [esp + 0x634]
lea ecx, [esp + 0x18]
push ecx
push 4
lea edx, [esp + 0x5c]
push edx
push 0x19
push ebp
push ebx
push edi
call fcn.347a316f
mov esi, eax
cmp esi, ebp
jl 0x3477e44d
mov edx, dword [esp + 0x638]
lea eax, [esp + 0x18]
push eax
push 4
lea ecx, [esp + 0x7c]
push ecx
push 0x19
push ebp
push edx
push edi
call fcn.347a316f
mov esi, eax
cmp esi, ebp
jl 0x3477e44d
mov eax, dword [esp + 0x54]
and eax, 0x6000
mov ecx, dword [esp + 0x74]
je 0x3477d76d
test ecx, 0x6000
je 0x3477d76d
mov esi, 0xffffb0b3
jmp 0x3477e44d
cmp eax, ebp
je 0x3477d88e
lea eax, [esp + 0x18]
push eax
push 0x10
lea ecx, [esp + 0xf4]
push ecx
push 0x1a
push ebp
push ebx
push edi
call fcn.347a316f
mov esi, eax
cmp esi, ebp
jl 0x3477e44d
mov eax, 0x10
lea ecx, [esp + 0xec]
lea edx, [esp + 0xac]
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x3477d7c3
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x3477d7ab
cmp eax, ebp
je 0x3477d820
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x3477d812
sub eax, 1
add ecx, 1
add edx, 1
cmp eax, ebp
je 0x3477d820
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x3477d812
sub eax, 1
add ecx, 1
add edx, 1
cmp eax, ebp
je 0x3477d820
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x3477d812
sub eax, 1
add ecx, 1
add edx, 1
cmp eax, ebp
je 0x3477d820
movzx esi, byte [edx]
movzx edx, byte [ecx]
sub esi, edx
je 0x3477d820
cmp esi, ebp
mov eax, 1
jg 0x3477d822
or eax, 0xffffffff
jmp 0x3477d822
xor eax, eax
cmp eax, ebp
je 0x3477d830
mov esi, 0xffffb0b3
jmp 0x3477e44d
test dword [esp + 0x54], 0x4000
je 0x3477d9c2
mov ebx, dword [esp + 0x634]
push 1
lea eax, [esp + 0xf0]
push eax
lea ecx, [esp + 0xc4]
push ecx
push ebx
push edi
call fcn.347adacb
mov esi, eax
cmp esi, ebp
jl 0x3477e44d
lea edx, [esp + 0xec]
push edx
push ebx
push edi
call fcn.347ae094
mov esi, eax
cmp esi, ebp
jl 0x3477e44d
lea eax, [esp + 0xbc]
push eax
jmp 0x3477d9b1
test ecx, 0x6000
je 0x3477d9c2
mov eax, dword [esp + 0x638]
lea ecx, [esp + 0x18]
push ecx
push 0x10
lea edx, [esp + 0xf4]
push edx
push 0x1a
push ebp
push eax
push edi
call fcn.347a316f
mov esi, eax
cmp esi, ebp
jl 0x3477e44d
mov eax, 0x10
lea ecx, [esp + 0xec]
lea edx, [esp + 0xbc]
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x3477d8ef
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x3477d8d7
cmp eax, ebp
je 0x3477d94c
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x3477d93e
sub eax, 1
add ecx, 1
add edx, 1
cmp eax, ebp
je 0x3477d94c
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x3477d93e
sub eax, 1
add ecx, 1
add edx, 1
cmp eax, ebp
je 0x3477d94c
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x3477d93e
sub eax, 1
add ecx, 1
add edx, 1
cmp eax, ebp
je 0x3477d94c
movzx esi, byte [edx]
movzx ecx, byte [ecx]
sub esi, ecx
je 0x3477d94c
cmp esi, ebp
mov eax, 1
jg 0x3477d94e
or eax, 0xffffffff
jmp 0x3477d94e
xor eax, eax
cmp eax, ebp
je 0x3477d95c
mov esi, 0xffffb0b3
jmp 0x3477e44d
test dword [esp + 0x74], 0x4000
je 0x3477d9c2
mov ebx, dword [esp + 0x638]
push 1
lea edx, [esp + 0xf0]
push edx
lea eax, [esp + 0xb4]
push eax
push ebx
push edi
call fcn.347adacb
mov esi, eax
cmp esi, ebp
jl 0x3477e44d
lea ecx, [esp + 0xec]
push ecx
push ebx
push edi
call fcn.347ae094
mov esi, eax
cmp esi, ebp
jl 0x3477e44d
lea edx, [esp + 0xac]
push edx
push ebx
push edi
call fcn.347b7833
mov esi, eax
cmp esi, ebp
jl 0x3477e44d
mov ecx, dword [esp + 0x634]
push ebp
lea eax, [esp + 0xb0]
push eax
push ecx
push edi
call fcn.347ae4e9
mov esi, eax
cmp esi, ebp
jge 0x3477d9eb
cmp esi, 0xffffb19b
jne 0x3477e44d
mov ebx, dword [esp + 0x638]
push ebp
lea edx, [esp + 0xc0]
push edx
push ebx
push edi
call fcn.347ae4e9
mov esi, eax
cmp esi, ebp
jge 0x3477da14
cmp esi, 0xffffb19b
jne 0x3477e44d
push ebp
lea eax, [esp + 0xb0]
push eax
push ebx
push edi
call fcn.347ae4e9
mov esi, eax
cmp esi, ebp
jl 0x3477e44d
mov edx, dword [esp + 0x634]
push ebp
lea ecx, [esp + 0xc0]
push ecx
push edx
push edi
call fcn.347ae4e9
mov esi, eax
cmp esi, ebp
jl 0x3477e44d
mov ecx, dword [0x347efae8]
mov edx, dword [ecx + 0x1a8]
lea eax, [esp + 0x8c]
push eax
push ebx
call edx
mov esi, eax
cmp esi, ebp
jl 0x3477e44d
mov ecx, dword [esp + 0x634]
mov edx, dword [0x347efae8]
lea eax, [esp + 0x88]
push eax
mov eax, dword [edx + 0x1a8]
push ecx
call eax
mov esi, eax
cmp esi, ebp
jl 0x3477e44d
mov ebx, dword [esp + 0x24]
mov edx, dword [0x347efae8]
mov eax, dword [edx + 0xbc]
push ebp
push 0x18
lea ecx, [esp + 0x9c]
push ecx
push 0x34772894
push ebx
push edi
call eax
mov esi, eax
cmp esi, ebp
jl 0x3477e44d
mov ecx, dword [0x347efae8]
mov edx, dword [ecx + 0x74]
push 0x34772824
push ebx
push edi
call edx
mov esi, eax
cmp esi, ebp
jl 0x3477e44d
mov edx, dword [esp + 0x98]
lea eax, [esp + 0xcc]
push eax
lea ecx, [esp + 0xb0]
push ecx
push edx
push ebx
push edi
call fcn.347caff0
mov esi, eax
cmp esi, ebp
jl 0x3477e44d
cmp esi, 0x3ec
lea eax, [esp + 0xcc]
mov dword [esp + 0x5c], eax
jne 0x3477db22
mov dword [esp + 0x5c], ebp
mov ebx, dword [esp + 0x6c]
mov edx, dword [0x347efae8]
mov eax, dword [edx + 0xbc]
push ebp
push 0x18
lea ecx, [esp + 0x9c]
push ecx
push 0x34772894
push ebx
push edi
call eax
mov esi, eax
cmp esi, ebp
jl 0x3477e44d
mov ecx, dword [0x347efae8]
mov edx, dword [ecx + 0x74]
push 0x34772824
push ebx
push edi
call edx
mov esi, eax
cmp esi, ebp
jl 0x3477e44d
mov edx, dword [esp + 0x98]
lea eax, [esp + 0xdc]
push eax
lea ecx, [esp + 0xc0]
push ecx
push edx
push ebx
push edi
call fcn.347caff0
mov esi, eax
cmp esi, ebp
jl 0x3477e44d
cmp esi, 0x3ec
lea eax, [esp + 0xdc]
mov dword [esp + 0x4c], eax
jne 0x3477dbac
mov dword [esp + 0x4c], ebp
mov ecx, dword [esp + 0x638]
mov edx, dword [esp + 0x8c]
push ecx
mov ecx, dword [esp + 0xb0]
push edx
mov edx, dword [esp + 0xb8]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0xcc]
mov dword [eax + 4], edx
mov edx, dword [esp + 0xd0]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x64c]
mov dword [eax + 0xc], edx
mov eax, dword [esp + 0x3c]
push eax
push ebx
push ecx
push edi
call fcn.3477aee2
mov esi, eax
cmp esi, ebp
jl 0x3477e44d
mov edx, dword [esp + 0x634]
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0xbc]
push edx
mov edx, dword [esp + 0xc4]
push eax
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0xdc]
mov dword [eax + 4], edx
mov edx, dword [esp + 0xe0]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x650]
push ebx
mov dword [eax + 0xc], edx
mov eax, dword [esp + 0x40]
push eax
push ecx
push edi
call fcn.3477aee2
mov esi, eax
cmp esi, ebp
jl 0x3477e44d
mov edx, dword [0x347efae8]
mov eax, dword [edx + 0x228]
mov ecx, dword [esp + 0x634]
mov eax, dword [eax + ecx*4]
mov ebx, dword [esp + 0x64c]
mov ecx, 0x100010
or dword [eax + 0xe4], ecx
mov edx, dword [0x347efae8]
mov eax, dword [edx + 0x228]
mov edx, dword [esp + 0x638]
mov eax, dword [eax + edx*4]
or dword [eax + 0xe4], ecx
cmp ebx, ebp
je 0x3477dcc1
lea eax, [esp + 0xfc]
push eax
call fcn.347e069c
mov esi, eax
cmp esi, ebp
jl 0x3477e44d
jmp 0x3477dcec
mov eax, dword [esp + 0x7c]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [esp + 0xfc], ecx
mov ecx, dword [eax + 8]
mov dword [esp + 0x100], edx
mov edx, dword [eax + 0xc]
mov dword [esp + 0x104], ecx
mov dword [esp + 0x108], edx
mov edx, dword [esp + 0x634]
lea eax, [esp + 0x12c]
push eax
lea ecx, [esp + 0x24]
push ecx
push edx
push edi
call fcn.347bd890
mov esi, eax
cmp esi, ebp
jl 0x3477e44d
mov edx, dword [esp + 0x638]
lea eax, [esp + 0x12c]
push eax
lea ecx, [esp + 0x20]
push ecx
push edx
push edi
call fcn.347bd890
mov esi, eax
cmp esi, ebp
jl 0x3477e44d
mov ecx, dword [esp + 0x634]
lea eax, [esp + 0x38]
push eax
push ecx
push edi
call fcn.34794c7e
mov esi, eax
cmp esi, ebp
jl 0x3477e3e1
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
cmp eax, ecx
jb 0x3477dd63
sub eax, ecx
jmp 0x3477dd67
sub ecx, eax
mov eax, ecx
mov ecx, dword [esp + 0x38]
add ecx, ecx
add eax, ecx
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x28]
cmp eax, ebp
lea edx, [esp + 0x3c]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x1fc], edx
je 0x3477dda2
push eax
push 5
mov eax, edx
push eax
push 0xd
push edi
call fcn.347b6ac8
mov esi, eax
cmp esi, ebp
jl 0x3477e44d
mov edx, dword [esp + 0x634]
mov eax, dword [0x347efae8]
push 0x80400000
push 0x34772544
lea ecx, [esp + 0x18]
push ecx
mov ecx, dword [eax + 0x60]
push edx
push edi
call ecx
mov esi, eax
cmp esi, ebp
jl 0x3477e44d
mov edx, dword [esp + 0x10]
mov eax, dword [0x347efae8]
mov ecx, dword [eax + 0x74]
push 0x34772d00
push edx
push edi
call ecx
mov esi, eax
cmp esi, ebp
jl 0x3477e44d
mov eax, dword [esp + 0x638]
mov ecx, dword [0x347efae8]
push 0x80400000
push 0x34772544
lea edx, [esp + 0x1c]
push edx
mov edx, dword [ecx + 0x60]
push eax
push edi
call edx
mov esi, eax
cmp esi, ebp
jl 0x3477e44d
mov eax, dword [esp + 0x14]
mov ecx, dword [0x347efae8]
mov edx, dword [ecx + 0x74]
push 0x34772d00
push eax
push edi
call edx
mov esi, eax
cmp esi, ebp
jl 0x3477e44d
mov ebp, dword [esp + 0x644]
mov ecx, dword [esp + 0x648]
mov eax, ebp
neg eax
sbb eax, eax
and eax, 0xfffe0000
add eax, 0x20000
neg ecx
sbb ecx, ecx
and ecx, 0x10000
or eax, ecx
or dword [esp + 0x640], eax
test ebx, ebx
je 0x3477deba
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x640]
lea edx, [esp + 0xac]
push edx
push eax
mov eax, dword [esp + 0x74]
push 0x34773648
push ecx
mov ecx, dword [esp + 0x20]
lea edx, [esp + 0x10c]
push edx
mov edx, dword [esp + 0x648]
push 1
push 1
push ebp
push 1
push eax
push ecx
push edx
push edi
call fcn.347c3215
mov esi, eax
test esi, esi
jl 0x3477e44d
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x640]
lea eax, [esp + 0xbc]
push eax
push ecx
mov ecx, dword [esp + 0x2c]
push 0x34773648
push edx
mov edx, dword [esp + 0x24]
lea eax, [esp + 0x10c]
push eax
mov eax, dword [esp + 0x64c]
push 1
push 1
push ebp
push 0
push ecx
push edx
push eax
push edi
mov dword [esp + 0x7c], 1
call fcn.347c3215
mov esi, eax
test esi, esi
jl 0x3477e44d
mov eax, dword [esp + 0x640]
and eax, 0xff
cmp eax, 8
mov dword [esp + 0x70], 1
jne 0x3477df5b
mov eax, dword [esp + 0x10]
push 0x34773648
push 1
lea ecx, [esp + 0x174]
push ecx
mov ecx, dword [esp + 0x640]
push 0
push 1
lea edx, [esp + 0x110]
push edx
push eax
push ecx
push edi
call fcn.347c3fcf
mov esi, eax
jmp 0x3477e44d
cmp eax, 2
je 0x3477df69
cmp eax, 4
jne 0x3477e0a3
mov eax, dword [esp + 0x634]
mov edx, dword [esp + 0x638]
mov ebx, dword [esp + 0xac]
mov ecx, dword [esp + 0xc0]
mov ebp, dword [esp + 0x1c]
mov esi, dword [esp + 0xc8]
mov dword [esp + 0x638], eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0xbc], ebx
mov ebx, dword [esp + 0xb0]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x634], edx
mov edx, dword [esp + 0xc4]
mov dword [esp + 0xc0], ebx
mov ebx, dword [esp + 0xb4]
mov dword [esp + 0xb0], ecx
mov ecx, dword [esp + 0xdc]
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0xd0]
mov dword [esp + 0xb4], edx
mov edx, dword [esp + 0xe0]
mov dword [esp + 0xc4], ebx
mov ebx, dword [esp + 0xb8]
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0xb8], esi
mov esi, dword [esp + 0xe4]
mov dword [esp + 0xc8], ebx
mov ebx, dword [esp + 0xe8]
mov dword [esp + 0xec], ecx
mov dword [esp + 0xf0], edx
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0xd8]
mov dword [esp + 0xcc], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0xd0], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x20], ebp
mov dword [esp + 0xf4], esi
mov dword [esp + 0xf8], ebx
mov dword [esp + 0xe8], eax
mov dword [esp + 0xd4], esi
mov dword [esp + 0xd8], ebx
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
jmp 0x3477e0a7
mov ebp, dword [esp + 0x20]
cmp dword [esp + 0x50], 0
je 0x3477e22d
cmp ebp, dword [esp + 0x1c]
jbe 0x3477e1e4
mov eax, dword [esp + 0x634]
mov ecx, dword [esp + 0x638]
mov ebx, dword [esp + 0xac]
mov edx, dword [esp + 0xc4]
mov esi, dword [esp + 0xc8]
mov dword [esp + 0x638], eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 0xbc], ebx
mov ebx, dword [esp + 0xb0]
mov dword [esp + 0x634], ecx
mov ecx, dword [esp + 0xc0]
mov dword [esp + 0xc0], ebx
mov ebx, dword [esp + 0xb4]
mov dword [esp + 0xc4], ebx
mov ebx, dword [esp + 0xb8]
mov dword [esp + 0xc8], ebx
mov ebx, dword [esp + 0xcc]
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 0xdc], ebx
mov ebx, dword [esp + 0xd0]
mov dword [esp + 0xb0], ecx
mov ecx, dword [esp + 0xe0]
mov dword [esp + 0xb4], edx
mov edx, dword [esp + 0xe4]
mov dword [esp + 0xe0], ebx
mov ebx, dword [esp + 0xd4]
mov dword [esp + 0xb8], esi
mov esi, dword [esp + 0xe8]
mov dword [esp + 0xec], eax
mov dword [esp + 0xf4], edx
mov dword [esp + 0xe4], ebx
mov ebx, dword [esp + 0xd8]
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0xd4], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0xf0], ecx
mov dword [esp + 0xf8], esi
mov dword [esp + 0xe8], ebx
mov dword [esp + 0xd0], ecx
mov dword [esp + 0xd8], esi
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], eax
mov edx, dword [esp + 0x14]
lea eax, [esp + 0x16c]
push eax
mov eax, dword [esp + 0x63c]
push 0
lea ecx, [esp + 0xb4]
push ecx
mov ecx, dword [esp + 0x1c]
push edx
mov edx, dword [esp + 0x644]
push eax
push ecx
push edx
lea eax, [esp + 0x118]
push eax
push edi
call fcn.3477ccc0
mov esi, eax
test esi, esi
jl 0x3477e3e1
jmp 0x3477e2db
cmp dword [esp + 0x1c], ebp
jbe 0x3477e2db
mov ecx, dword [0x347efae8]
mov edx, dword [ecx + 0xd4]
push edi
call edx
mov esi, eax
test esi, esi
jl 0x3477e44d
mov ebx, dword [esp + 0x634]
mov eax, dword [esp + 0x638]
or dword [esp + 0x61c], 0x200
lea ecx, [esp + 0x16c]
push ecx
lea edx, [esp + 0xb0]
push edx
push ebx
push edi
mov dword [esp + 0x1d0], eax
call fcn.34794209
mov esi, eax
test esi, esi
jl 0x3477e3d1
or dword [esp + 0x61c], 0x401
lea eax, [esp + 0x16c]
push eax
push ebx
push edi
mov dword [esp + 0x1c8], 0
call fcn.3479f96b
mov esi, eax
test esi, esi
jl 0x3477e3d1
mov ecx, dword [0x347efae8]
mov edx, dword [ecx + 0xd8]
push 0
push edi
call edx
mov esi, eax
test esi, esi
jl 0x3477e3d1
push 0x4bc
lea eax, [esp + 0x170]
push 0
push eax
call sub.msvcr80.dll_memset
add esp, 0xc
lea edx, [esp + 0x16c]
push edx
mov edx, dword [esp + 0x638]
push 1
lea ecx, [esp + 0x44]
mov dword [esp + 0x204], ecx
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0xc4]
push eax
mov eax, dword [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x648]
push edx
push eax
push ecx
lea edx, [esp + 0x118]
push edx
push edi
call fcn.3477ccc0
mov esi, eax
test esi, esi
jl 0x3477e3e1
cmp dword [esp + 0x50], 0
je 0x3477e35c
cmp dword [esp + 0x1e4], 0
ja 0x3477e36d
cmp dword [esp + 0x1e8], 0
ja 0x3477e36d
test dword [esp + 0x61c], 0x8000
je 0x3477e44d
push 0x4bc
lea eax, [esp + 0x170]
push 0
push eax
call sub.msvcr80.dll_memset
add esp, 0xc
lea edx, [esp + 0x16c]
push edx
mov edx, dword [esp + 0x63c]
push 1
lea ecx, [esp + 0x44]
mov dword [esp + 0x204], ecx
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0xb4]
push eax
mov eax, dword [esp + 0x1c]
push ecx
mov ecx, dword [esp + 0x644]
push edx
push eax
push ecx
lea edx, [esp + 0x118]
push edx
push edi
call fcn.3477ccc0
mov esi, eax
test esi, esi
jge 0x3477e44d
jmp 0x3477e3e1
mov eax, dword [0x347efae8]
mov ecx, dword [eax + 0xdc]
push 0
push edi
call ecx
cmp esi, 0xffffb196
jne 0x3477e415
mov eax, dword [esp + 0x634]
push 1
lea edx, [esp + 0xb0]
push edx
push eax
push edi
call fcn.347ae4e9
mov edx, dword [esp + 0x638]
push 1
lea ecx, [esp + 0xc0]
push ecx
push edx
jmp 0x3477e447
cmp esi, 0xffffb19a
jne 0x3477e44d
mov ecx, dword [esp + 0x634]
push 2
lea eax, [esp + 0xb0]
push eax
push ecx
push edi
call fcn.347ae4e9
mov eax, dword [esp + 0x638]
push 2
lea edx, [esp + 0xc0]
push edx
push eax
push edi
call fcn.347ae4e9
cmp dword [esp + 0x58], 0
jne 0x3477e476
mov ecx, dword [esp + 0x30]
mov edx, dword [0x347efae8]
mov eax, dword [edx + 0x68]
push ecx
push edi
call eax
mov ecx, dword [esp + 0x60]
mov edx, dword [0x347efae8]
mov eax, dword [edx + 0x68]
push ecx
push edi
call eax
test esi, esi
jl 0x3477e4ac
mov eax, dword [esp + 0x28]
xor ebp, ebp
cmp eax, ebp
mov dword [esp + 0x34], ebp
mov dword [esp + 0x2c], ebp
mov ebx, 2
je 0x3477e4e5
push eax
push 6
lea ecx, [esp + 0x44]
push ecx
push 0xd
push edi
call fcn.347b6ac8
mov esi, eax
test esi, esi
jge 0x3477e4e5
jmp 0x3477e568
lea edx, [esp + 0x2c]
push edx
lea eax, [esp + 0x38]
push eax
push esi
mov ebp, 1
call fcn.347c90da
mov eax, dword [esp + 0x28]
test eax, eax
mov ebx, 3
je 0x3477e4e5
push eax
push ebx
lea ecx, [esp + 0x44]
push ecx
push 0xd
push edi
call fcn.347b6ac8
test eax, eax
jl 0x3477e568
mov eax, dword [esp + 0x10]
cmp eax, 0xffffffff
je 0x3477e527
cmp dword [esp + 0x48], 0
je 0x3477e516
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x34]
push edx
push ecx
push ebp
push ebx
lea edx, [esp + 0x10c]
push edx
push eax
push edi
call fcn.347c49a3
test esi, esi
jne 0x3477e516
mov esi, eax
mov eax, dword [esp + 0x10]
mov ecx, dword [0x347efae8]
mov edx, dword [ecx + 0x68]
push eax
push edi
call edx
mov eax, dword [esp + 0x14]
cmp eax, 0xffffffff
je 0x3477e568
cmp dword [esp + 0x70], 0
je 0x3477e558
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x34]
push ecx
push edx
push ebp
push ebx
lea ecx, [esp + 0x10c]
push ecx
push eax
push edi
call fcn.347c49a3
test esi, esi
jne 0x3477e558
mov esi, eax
mov edx, dword [esp + 0x14]
mov eax, dword [0x347efae8]
mov ecx, dword [eax + 0x68]
push edx
push edi
call ecx
mov eax, esi
mov ecx, dword [esp + 0x628]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.347ea89f
add esp, 0x61c
ret 0x30