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

Disassembly:
sub esp, 0x2d0
mov eax, dword [0x34893850]
xor eax, esp
mov dword [esp + 0x2cc], eax
mov eax, dword [esp + 0x2d4]
mov ecx, dword [esp + 0x2dc]
push ebx
mov ebx, dword [esp + 0x2dc]
push ebp
xor ebp, ebp
cmp ecx, ebp
push esi
mov dword [esp + 0x18], eax
mov eax, 0xfcfc
push edi
mov edi, dword [esp + 0x2f0]
mov dword [esp + 0x68], ebx
mov dword [esp + 0x84], edx
mov dword [esp + 0x30], eax
mov dword [esp + 0x28], 0xfcfcfcfc
mov dword [esp + 0x38], eax
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x50], ebp
mov dword [esp + 0x20], ebp
mov dword [esp + 0x18], 0xffffffff
jne 0x348abbb0
cmp dword [esp + 0x2f4], 1
je 0x348abbcf
mov esi, 0xfffffc15
jmp 0x348ac4cf
lea eax, [esp + 0x50]
push eax
lea edx, [esp + 0x50]
push edx
push 0xc
push ecx
push ebx
call fcn.348b44c7
mov esi, eax
cmp esi, ebp
jl 0x348ac4cf
xor ebp, ebp
cmp edi, ebp
je 0x348abbf9
push 0x41
push edi
lea eax, [esp + 0x1a0]
push eax
call fcn.348a49f9
movzx eax, ax
cmp ax, bp
mov dword [esp + 0x30], eax
jne 0x348abbf9
mov esi, 0xfffffc13
jmp 0x348ac4cf
movzx eax, word [ebx + 0x16]
mov ecx, 0x36
mov esi, 0x34892688
lea edi, [esp + 0xc0]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x94]
push ecx
mov ecx, dword [esp + 0x20]
lea edx, [esp + 0x90]
push edx
push 8
mov dword [esp + 0x180], eax
mov dword [esp + 0x168], eax
mov dword [esp + 0x150], eax
mov dword [esp + 0x138], eax
mov dword [esp + 0xd8], eax
push 9
lea eax, [esp + 0xd0]
push eax
push ecx
call fcn.348bda0a
mov esi, eax
cmp esi, ebp
jl 0x348ac4cf
mov eax, dword [esp + 0x2f4]
test eax, eax
mov edx, dword [esp + 0x8c]
mov ebp, dword [ebx + 0x114]
mov dword [esp + 0x18], edx
mov dword [esp + 0x88], 0x2c
mov dword [esp + 0x44], ebp
je 0x348abd64
jbe 0x348abcee
cmp eax, 3
ja 0x348abcee
mov eax, dword [esp + 0x2ec]
test eax, eax
jne 0x348abcd0
lea eax, [esp + 0x20]
push eax
push 1
push 0xff
push ebp
call fcn.3489cba3
mov esi, eax
test esi, esi
jl 0x348ac4cf
mov ecx, dword [esp + 0x20]
push 0
push 0
push ecx
call fcn.3489d30c
jmp 0x348abce4
lea edx, [esp + 0x20]
push edx
push eax
movzx eax, word [ebx + 0xee]
push eax
push ebp
call fcn.348a4f05
mov esi, eax
test esi, esi
jl 0x348ac4cf
mov eax, dword [esp + 0x2ec]
test eax, eax
je 0x348abdcb
lea ecx, [esp + 0x28]
push ecx
movzx ecx, word [ebx + 0xea]
lea edx, [esp + 0x14]
push edx
mov edx, dword [ebx + 0x10c]
push 0
push 0
push ecx
push eax
push edx
call fcn.348a4a3c
mov esi, eax
test esi, esi
jl 0x348ac4cf
cmp dword [esp + 0x10], 0
jne 0x348abd3a
push ebp
push ebx
call fcn.348b5ae7
mov esi, eax
test esi, esi
jl 0x348ac4cf
mov ecx, dword [ebx + 0x50]
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x38]
push eax
push ecx
push edx
call fcn.34899c25
test eax, eax
jne 0x348abdac
push ebp
push ebx
call fcn.348b5ae7
mov esi, eax
jmp 0x348abdc3
movzx edx, word [esp + 0x30]
lea ecx, [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x2f0]
push edx
movzx edx, word [ebx + 0xee]
lea eax, [esp + 0x1a0]
push eax
push ecx
push edx
push ebp
call fcn.348a4c81
mov esi, eax
test esi, esi
jl 0x348ac4cf
cmp dword [esp + 0x20], 0
jne 0x348abcee
mov esi, 0xfffffc13
jmp 0x348ac4cf
movzx ecx, word [esp + 0x38]
push ecx
push eax
lea edx, [esp + 0x1e4]
push edx
call sub.msvcr80.dll_memcpy
add esp, 0xc
test esi, esi
jl 0x348ac4cf
mov eax, dword [ebx + 0x110]
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x14]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x24]
push edx
push eax
mov dword [esp + 0x54], 0
call fcn.3489c7c1
mov esi, eax
test esi, esi
jl 0x348ac4cf
jmp 0x348abe01
mov ebp, dword [esp + 0x44]
cmp dword [esp + 0x10], 0
je 0x348ac538
mov ecx, dword [esp + 0x28]
push ecx
mov dword [esp + 0x74], 0xfcfcfcfc
call fcn.348969ef
mov eax, dword [ebx + 0xbc]
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x14]
push edx
push eax
push ecx
call fcn.34899c25
test eax, eax
je 0x348ac4b5
movzx dx, byte [eax]
mov esi, dword [esp + 0x2f4]
cmp esi, 3
movzx edi, dx
mov dword [esp + 0x6c], edi
ja case.default.0x348abe57
jmp dword [esi*4 + 0x348ac5c0]
cmp di, 1
je case.default.0x348abe57
mov esi, 0xfffffc13
jmp 0x348ac4c5
cmp di, 1
jne 0x348ac489
cmp dword [esp + 0x2ec], 0
jne case.default.0x348abe57
mov ecx, dword [ebx + 0xb4]
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x14]
push eax
push ecx
push edx
call fcn.34899c25
test eax, eax
jne 0x348abeb2
push ebp
push ebx
call fcn.348b5ae7
mov esi, eax
jmp 0x348abf3c
mov eax, dword [eax]
lea ecx, [esp + 0xb8]
push ecx
movzx ecx, word [ebx + 0xea]
lea edx, [esp + 0x68]
push edx
mov edx, dword [ebx + 0x10c]
push 0
push 0
push ecx
push eax
push edx
mov dword [esp + 0x8c], eax
call fcn.348a4a3c
mov esi, eax
test esi, esi
jl 0x348ac4c5
cmp dword [esp + 0x64], 0
jne 0x348abefb
push ebp
push ebx
call fcn.348b5ae7
mov esi, eax
test esi, esi
jl 0x348ac4c5
mov ecx, dword [ebx + 0x50]
mov edx, dword [esp + 0x64]
lea eax, [esp + 0x38]
push eax
push ecx
push edx
call fcn.34899c25
test eax, eax
jne 0x348abf25
push ebp
push ebx
call fcn.348b5ae7
mov esi, eax
jmp 0x348abf3c
movzx ecx, word [esp + 0x38]
push ecx
push eax
lea edx, [esp + 0x1e4]
push edx
call sub.msvcr80.dll_memcpy
add esp, 0xc
test esi, esi
jl 0x348ac4c5
mov esi, dword [esp + 0x2f4]
jmp case.default.0x348abe57
cmp di, 2
jne 0x348ac489
jmp case.default.0x348abe57
test di, di
je 0x348ac489
mov ecx, dword [ebx + 0xb8]
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x14]
push eax
push ecx
push edx
call fcn.34899c25
test eax, eax
je 0x348ac4b5
cmp esi, 3
mov eax, dword [eax]
mov dword [esp + 0x58], eax
jne 0x348abf9e
cmp eax, dword [esp + 0x2ec]
jne 0x348abf9e
cmp di, 2
je 0x348ac489
mov ecx, dword [ebx + 0xb0]
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x30]
push eax
push ecx
push edx
call fcn.34899c25
test eax, eax
jne 0x348abfbe
mov dword [esp + 0x30], eax
jmp 0x348abfd5
movzx ecx, word [esp + 0x30]
push ecx
push eax
lea edx, [esp + 0x1a0]
push edx
call sub.msvcr80.dll_memcpy
add esp, 0xc
mov ecx, dword [ebx + 0xc0]
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x14]
push eax
push ecx
push edx
call fcn.34899c25
mov ecx, eax
movzx eax, word [esp + 0x14]
mov edi, eax
shr edi, 3
test ecx, ecx
mov dword [esp + 0x54], ecx
mov dword [esp + 0x7c], edi
je 0x348ac4b5
lea esi, [edi*8]
cmp eax, esi
jne 0x348ac4b5
mov ecx, dword [ebx + 0xc4]
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x14]
push eax
push ecx
push edx
call fcn.34899c25
mov ebp, eax
test ebp, ebp
je 0x348ac527
movzx eax, word [esp + 0x14]
cmp eax, esi
jne 0x348ac527
cmp word [esp + 0x6c], 1
mov edx, dword [esp + 0x10]
mov dword [esp + 0x2c], 0
je 0x348ac097
mov ecx, dword [ebx + 0xa8]
lea eax, [esp + 0x14]
push eax
push ecx
push edx
call fcn.34899c25
test eax, eax
je 0x348ac4b8
movzx eax, word [eax]
mov edx, dword [esp + 0x58]
lea ecx, [esp + 0x78]
push ecx
push eax
mov eax, dword [esp + 0x4c]
push edx
push eax
call fcn.348a50ba
mov esi, eax
test esi, esi
jl 0x348ac4c5
mov edx, dword [esp + 0x78]
mov ecx, dword [ebx + 0xa0]
push ecx
push edx
call fcn.34899d08
test eax, eax
je 0x348ac0ad
or dword [esp + 0x2c], 1
mov eax, dword [ebx + 0x94]
mov ecx, dword [esp + 0x10]
push eax
push ecx
call fcn.34899d08
test eax, eax
je 0x348ac0c7
or dword [esp + 0x2c], 2
movzx ecx, word [ebx + 0xea]
lea edx, [esp + 0xbc]
push edx
mov edx, dword [esp + 0x5c]
lea eax, [esp + 0x14]
push eax
mov eax, dword [ebx + 0x10c]
push 0
push 0
push ecx
push edx
push eax
call fcn.348a4a3c
mov esi, eax
test esi, esi
jl 0x348ac4c5
mov edx, dword [ebx + 0x50]
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x40]
push ecx
push edx
push eax
call fcn.34899c25
movzx ecx, word [esp + 0x40]
push ecx
push eax
lea edx, [esp + 0x264]
push edx
call sub.msvcr80.dll_memcpy
add esp, 0xc
test edi, edi
mov dword [esp + 0x80], edi
mov dword [esp + 0x60], 0
jbe 0x348ac47b
mov eax, dword [esp + 0x54]
lea edi, [ebp + 2]
sub eax, ebp
mov dword [esp + 0x5c], edi
mov dword [esp + 0x54], eax
jmp 0x348ac157
mov edi, dword [esp + 0x5c]
mov eax, dword [esp + 0x54]
movzx ax, byte [eax + edi]
mov ecx, dword [esp + 0x2ec]
test ecx, ecx
mov esi, dword [esp + 0x60]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x74], esi
movzx eax, ax
jne 0x348ac183
lea ecx, [esp + 0x10]
push ecx
push eax
mov eax, dword [esp + 0x78]
push eax
jmp 0x348ac18a
lea esi, [esp + 0x10]
push esi
push eax
push ecx
push edx
call fcn.348a50f8
mov esi, eax
test esi, esi
jl 0x348ac4c5
mov eax, dword [esp + 0x10]
test eax, eax
je 0x348ac513
mov edx, dword [ebx + 0x80]
lea ecx, [esp + 0x3c]
push ecx
push edx
push eax
call fcn.34899c25
test eax, eax
je 0x348ac51a
movzx ecx, word [esp + 0x3c]
push ecx
push eax
lea edx, [esp + 0x224]
push edx
call sub.msvcr80.dll_memcpy
movzx ax, byte [edi]
mov edx, dword [esp + 0x64]
add esp, 0xc
movzx eax, ax
lea ecx, [esp + 0x10]
push ecx
push eax
mov eax, dword [esp + 0x2c]
push edx
push eax
call fcn.348a50f8
mov esi, eax
test esi, esi
jl 0x348ac4c5
mov eax, dword [esp + 0x10]
test eax, eax
je 0x348ac521
mov edx, dword [ebx + 0x80]
lea ecx, [esp + 0x34]
push ecx
push edx
push eax
call fcn.34899c25
test eax, eax
je 0x348ac513
movzx ecx, word [esp + 0x34]
push ecx
push eax
lea edx, [esp + 0x2a4]
push edx
call sub.msvcr80.dll_memcpy
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx]
add esp, 0xc
push 0
push eax
mov eax, dword [0x348eb6cc]
mov ecx, dword [eax + 0x14]
push edx
call ecx
mov esi, eax
test esi, esi
jne 0x348ac4c5
mov ecx, dword [esp + 0x18]
push eax
push eax
mov eax, dword [esp + 0xbc]
push 2
lea edx, [esp + 0x54]
push edx
mov edx, dword [esp + 0x2c]
push eax
mov eax, dword [edx]
push ecx
push eax
call fcn.348c7804
mov esi, eax
test esi, esi
jne 0x348ac4c5
movzx ecx, word [esp + 0x30]
push eax
push eax
mov eax, dword [esp + 0x9c]
push ecx
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x1a4]
push edx
mov edx, dword [esp + 0x2c]
push eax
mov eax, dword [edx]
push ecx
push eax
call fcn.348c7804
mov esi, eax
test esi, esi
jne 0x348ac4c5
mov edx, dword [esp + 0x98]
push eax
push eax
mov eax, dword [esp + 0x20]
push 4
lea ecx, [esp + 0x38]
push ecx
mov ecx, dword [esp + 0x2c]
push edx
mov edx, dword [ecx]
push eax
push edx
call fcn.348c7804
mov esi, eax
test esi, esi
jne 0x348ac4c5
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0x18]
push eax
push eax
push 4
lea eax, [esp + 0x8c]
push eax
mov eax, dword [esp + 0x2c]
push ecx
mov ecx, dword [eax]
push edx
push ecx
call fcn.348c7804
mov esi, eax
test esi, esi
jne 0x348ac4c5
mov ecx, dword [esp + 0x18]
push eax
push eax
mov eax, dword [esp + 0xa8]
push 4
lea edx, [esp + 0x80]
push edx
mov edx, dword [esp + 0x2c]
push eax
mov eax, dword [edx]
push ecx
push eax
call fcn.348c7804
mov esi, eax
test esi, esi
jne 0x348ac4c5
cmp word [esp + 0x6c], 1
jne 0x348ac36b
mov eax, dword [esp + 0xa4]
mov edi, dword [esp + 0xa8]
mov ebx, dword [esp + 0xac]
mov ebp, dword [esp + 0xb0]
jmp 0x348ac387
mov eax, dword [esp + 0xac]
mov edi, dword [esp + 0xb0]
mov ebx, dword [esp + 0xa4]
mov ebp, dword [esp + 0xa8]
movzx ecx, word [esp + 0x38]
push 0
push 0
push ecx
mov ecx, dword [esp + 0x28]
lea edx, [esp + 0x1e8]
push edx
mov edx, dword [ecx]
push eax
mov eax, dword [esp + 0x2c]
push eax
push edx
call fcn.348c7804
mov esi, eax
test esi, esi
jne 0x348ac4c5
mov edx, dword [esp + 0x18]
push eax
push eax
movzx eax, word [esp + 0x44]
push eax
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0x228]
push ecx
mov ecx, dword [eax]
push edi
push edx
push ecx
call fcn.348c7804
mov esi, eax
test esi, esi
jne 0x348ac4c5
movzx edx, word [esp + 0x40]
mov ecx, dword [esp + 0x18]
push eax
push eax
push edx
mov edx, dword [esp + 0x28]
lea eax, [esp + 0x268]
push eax
mov eax, dword [edx]
push ebx
push ecx
push eax
call fcn.348c7804
mov esi, eax
test esi, esi
jne 0x348ac4c5
movzx ecx, word [esp + 0x34]
push eax
push eax
mov eax, dword [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x28]
lea edx, [esp + 0x2a8]
push edx
mov edx, dword [ecx]
push ebp
push eax
push edx
call fcn.348c7804
mov esi, eax
test esi, esi
jne 0x348ac4c5
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx]
push eax
push eax
push eax
mov eax, dword [esp + 0x24]
push eax
mov eax, dword [0x348eb6cc]
mov ecx, dword [eax + 0x40]
push edx
call ecx
mov esi, eax
test esi, esi
jl 0x348ac4c5
mov eax, dword [esp + 0x60]
add dword [esp + 0x48], 1
add dword [esp + 0x5c], 8
mov ebx, dword [esp + 0x68]
add eax, 1
cmp eax, dword [esp + 0x7c]
mov dword [esp + 0x60], eax
jb 0x348ac14f
cmp dword [esp + 0x2f4], 0
je 0x348ac52e
mov edx, dword [esp + 0x28]
push edx
call fcn.34896a04
mov edx, dword [esp + 0x20]
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x14]
push ecx
push 0
push edx
call fcn.3489deb1
mov esi, eax
test esi, esi
jge 0x348abdfd
jmp 0x348ac4cf
push ebp
jmp 0x348ac4bd
mov eax, dword [esp + 0x44]
push eax
push ebx
call fcn.348b5ae7
mov esi, eax
mov edx, dword [esp + 0x28]
push edx
call fcn.34896a04
mov eax, dword [esp + 0x20]
push eax
call fcn.3489c7aa
test eax, eax
jl 0x348ac5a3
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
push ecx
push edx
call fcn.348b5230
mov eax, dword [esp + 0x18]
cmp eax, 0xffffffff
je 0x348ac50c
mov edx, dword [0x348eb6cc]
push eax
mov eax, dword [esp + 0x20]
mov ecx, dword [eax]
mov eax, dword [edx + 0x10]
push ecx
call eax
mov eax, esi
jmp 0x348ac5a3
mov ecx, dword [esp + 0x24]
push ecx
jmp 0x348ac4bd
mov edx, dword [esp + 0x24]
push edx
jmp 0x348ac4bd
mov eax, dword [esp + 0x24]
jmp 0x348ac4bc
mov edx, dword [esp + 0x44]
push edx
jmp 0x348ac4bd
mov eax, dword [esp + 0x28]
push eax
call fcn.34896a04
test esi, esi
jl 0x348ac4cf
mov ecx, dword [esp + 0x20]
push ecx
call fcn.3489c759
mov esi, eax
test esi, esi
jl 0x348ac4cf
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
push ecx
push edx
mov dword [esp + 0x28], 0
call fcn.348b5230
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx]
push 0
push 0x80000000
push eax
mov eax, dword [0x348eb6cc]
mov ecx, dword [eax + 0x4c]
push edx
call ecx
movzx edx, word [esp + 0x48]
mov edi, dword [esp + 0x84]
mov ecx, 0xb
lea esi, [esp + 0x88]
mov dword [esp + 0x90], edx
rep movsd dword es:[edi], dword [esi]
xor eax, eax
mov ecx, dword [esp + 0x2dc]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.348c86f8
add esp, 0x2d0
ret 0x14