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

Disassembly:
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
sub esp, 0x90
push ebx
mov ebx, dword [esp + 0x9c]
push ebp
mov ebp, dword [esp + 0xa8]
push esi
push edi
mov edi, dword [esp + 0xa4]
cmp dword [edi + 4], 0
je 0x4342b4
test ebx, ebx
je 0x4342b4
cmp dword [esp + 0xac], 0
je 0x4342b4
test eax, eax
je 0x4342b4
test ecx, ecx
je 0x4342b4
cmp byte [edi + 0x182], 0
je 0x4342b4
test eax, eax
jge 0x434242
mov eax, dword [edi + 0xc]
mov dword [esp + 0xb8], eax
test ecx, ecx
jge 0x434250
mov ecx, dword [edi + 0x10]
mov dword [esp + 0xbc], ecx
cmp dword [edi + 0x14c], 0
push ebx
setge byte [esp + 0x26]
cmp dword [edi + 0x1bc], 0
setne byte [esp + 0x25]
call dword [0x4a7068]
mov esi, eax
xor eax, eax
test esi, esi
mov dword [esp + 0x7c], esi
je 0x4342b6
lea edx, [esp + 0x58]
push edx
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0xb0]
push 0x18
push eax
call dword [0x4a7084]
test eax, eax
jne 0x4342c3
push esi
push ebx
call dword [0x4a706c]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x90
ret 0x1c
mov eax, dword [esp + 0x64]
mov ecx, eax
and ecx, 0x80000003
jns 0x4342d6
dec ecx
or ecx, 0xfffffffc
inc ecx
je 0x4342f8
jmp 0x4342e0
add eax, 1
mov edx, eax
and edx, 0x80000003
jns 0x4342f2
dec edx
or edx, 0xfffffffc
inc edx
jne 0x4342e0
mov dword [esp + 0x64], eax
mov ecx, dword [esp + 0xb4]
mov edx, dword [esp + 0x60]
xor eax, eax
test ecx, ecx
setl al
sub eax, 1
and eax, ecx
cmp edx, eax
jge 0x43431c
mov dword [esp + 0x94], edx
jmp 0x43432f
xor eax, eax
test ecx, ecx
setl al
sub eax, 1
and eax, ecx
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x5c]
xor ecx, ecx
test ebp, ebp
setl cl
sub ecx, 1
and ecx, ebp
cmp eax, ecx
jge 0x434347
mov ebx, eax
jmp 0x434353
xor ebx, ebx
test ebp, ebp
setl bl
sub ebx, 1
and ebx, ebp
mov ecx, dword [esp + 0xb8]
add ecx, ebp
cmp eax, ecx
mov esi, eax
jl 0x434364
mov esi, ecx
test esi, esi
jge 0x43436c
xor eax, eax
jmp 0x434372
cmp eax, ecx
jl 0x434372
mov eax, ecx
mov esi, dword [esp + 0xbc]
mov ecx, dword [esp + 0xb4]
add ecx, esi
cmp edx, ecx
mov esi, edx
jl 0x43438a
mov esi, ecx
test esi, esi
jge 0x434392
xor ebp, ebp
jmp 0x43439a
cmp edx, ecx
mov ebp, edx
jl 0x43439a
mov ebp, ecx
sub eax, ebx
mov esi, ebp
sub esi, dword [esp + 0x94]
test eax, eax
mov dword [esp + 0x40], eax
jle 0x4342b4
test esi, esi
jle 0x4342b4
cmp dword [esp + 0xb8], 0
jle 0x4342b4
cmp dword [esp + 0xbc], 0
jle 0x4342b4
cmp byte [esp + 0x22], 0
jne 0x4345c4
cmp byte [esp + 0x21], 0
jne 0x4345c4
cmp byte [edi + 0x181], 0
jne 0x4345c4
cmp dword [esp + 0x6c], 0
je 0x434d76
fild dword [edi + 0xc]
mov edi, dword [edi + 0x10]
mov dword [esp + 0x18], edi
mov edx, ebp
fidiv dword [esp + 0xb8]
sub edx, dword [esp + 0xb4]
fstp dword [esp + 0x28]
fild dword [esp + 0x18]
mov dword [esp + 0x18], edx
fidiv dword [esp + 0xbc]
fstp dword [esp + 0x38]
fild dword [esp + 0x18]
fld dword [esp + 0x38]
fld st(0)
fmulp st(2)
fxch st(1)
call fcn.0049ddc0
sub edi, eax
test esi, esi
mov dword [esp + 0x18], edi
fild dword [esp + 0x18]
fstp dword [esp + 0x24]
jle 0x434d74
mov eax, dword [esp + 0xb0]
sub ebx, eax
mov dword [esp + 0x18], ebx
fild dword [esp + 0x18]
lea ecx, [eax*4]
fld dword [esp + 0x28]
mov dword [esp + 0x48], ecx
fld st(0)
neg ebp
fmulp st(2)
mov dword [esp + 0x2c], esi
fxch st(1)
fstp dword [esp + 0x18]
fld qword [0x4c35d0]
fld1
mov edx, dword [esp + 0x60]
fld dword [esp + 0x18]
lea esi, [edx + ebp]
fstp dword [esp + 0x14]
imul esi, dword [esp + 0x64]
add esi, dword [esp + 0x48]
add esi, dword [esp + 0x6c]
cmp dword [esp + 0x40], 0
jle 0x4345a7
fld dword [esp + 0x24]
mov ebx, dword [esp + 0x40]
mov edi, dword [esp + 0xa4]
fsub st(2)
fstp dword [esp + 0x30]
fld dword [esp + 0x30]
jmp 0x4344e7
fld dword [esp + 0x30]
fxch st(3)
fxch st(4)
fxch st(3)
fxch st(1)
fxch st(2)
fxch st(1)
fxch st(3)
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x43452d
fxch st(1)
fcomp st(4)
fnstsw ax
test ah, 5
jp 0x43452f
push 2
fxch st(3)
sub esp, 0x10
fstp dword [esp + 0xc]
lea eax, [esp + 0x68]
fxch st(2)
fstp dword [esp + 8]
fstp dword [esp + 4]
fsubr dword [esp + 0x28]
fstp dword [esp + 0x48]
fld dword [esp + 0x48]
fstp dword [esp]
push eax
call fcn.0043d150
jmp 0x434559
fstp st(4)
fstp st(3)
push 2
fstp st(2)
sub esp, 8
fstp dword [esp + 4]
lea ecx, [esp + 0x84]
fsubr dword [esp + 0x20]
fstp dword [esp + 0x40]
fld dword [esp + 0x40]
fstp dword [esp]
push ecx
push edi
call fcn.0043b000
mov eax, dword [eax]
fld dword [esp + 0x14]
fld dword [esp + 0x28]
mov byte [esi], al
add esi, 1
fld st(0)
mov byte [esi], ah
faddp st(2)
add esi, 1
fxch st(1)
mov dword [esp + 0x3c], eax
mov dl, byte [esp + 0x3e]
fstp dword [esp + 0x14]
fld dword [esp + 0x38]
mov byte [esi], dl
fld1
add esi, 1
fld qword [0x4c35d0]
mov byte [esi], 0xff
add esi, 1
sub ebx, 1
jne 0x4344d7
fxch st(2)
fxch st(3)
fxch st(2)
fxch st(1)
fld dword [esp + 0x24]
add ebp, 1
sub dword [esp + 0x2c], 1
fadd st(4)
fstp dword [esp + 0x24]
jne 0x434495
jmp 0x434d6e
lea eax, [esp + 0x74]
mov ecx, edi
mov byte [esp + 0x10], 0
mov byte [esp + 0x11], 0
mov byte [esp + 0x12], 0
mov byte [esp + 0x13], 0
call fcn.00437810
cmp dword [esp + 0x6c], 0
mov eax, dword [edi + 0x14c]
mov dword [esp + 0x70], eax
mov dword [esp + 0x38], 0
je 0x434d76
mov eax, dword [edi + 0xc]
cmp dword [esp + 0xb8], eax
mov dword [esp + 0x18], eax
jne 0x434912
mov eax, dword [edi + 0x10]
cmp dword [esp + 0xbc], eax
jne 0x434912
sub eax, ebp
add eax, dword [esp + 0xb4]
test esi, esi
mov edx, eax
mov dword [esp + 0x28], edx
jle 0x434d76
mov eax, dword [esp + 0xb0]
mov ecx, ebx
sub ecx, eax
add eax, eax
add eax, eax
neg ebp
mov dword [esp + 0x18], ecx
mov dword [esp + 0x48], eax
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x4c], esi
jmp 0x43466b
mov edi, dword [esp + 0xa4]
mov ecx, dword [esp + 0x18]
mov eax, dword [edi + 0xc]
mov esi, dword [esp + 0x2c]
imul eax, edx
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x60]
lea ebp, [esi + eax]
imul ebp, dword [esp + 0x64]
mov eax, dword [edi + 0x30]
add ebp, dword [esp + 0x48]
imul eax, edx
add ebp, dword [esp + 0x6c]
mov dword [esp + 0x24], ecx
lea ecx, [ecx + ecx*2]
add eax, ecx
add eax, dword [edi + 0x34]
cmp dword [esp + 0x40], 0
mov dword [esp + 0x30], eax
jle 0x4348f4
mov eax, dword [esp + 0x40]
mov edi, dword [esp + 0xa4]
mov dword [esp + 0x44], eax
lea ecx, [ecx]
cmp byte [esp + 0x21], 0
je 0x4346dc
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x24]
add eax, ecx
mov ecx, dword [edi + 0x1bc]
mov al, byte [eax + ecx]
jmp 0x4346de
or al, 0xff
movzx ebx, byte [edi + 0x180]
add ebx, 1
movzx eax, al
imul ebx, eax
sar ebx, 8
cmp dword [edi + 0x28], 0
je 0x43473b
mov ecx, dword [esp + 0x24]
mov esi, edx
mov eax, edi
call fcn.00437cf0
movzx eax, al
mov dword [esp + 0x38], eax
push eax
lea eax, [esp + 0x58]
mov ecx, edi
call fcn.00437c90
cmp byte [edi + 0x181], 0
mov eax, dword [eax]
mov dword [esp + 0x10], eax
je 0x434765
mov ecx, eax
shr ecx, 0x18
movzx edx, bl
add ecx, 1
imul ecx, edx
sar ecx, 8
mov bl, cl
jmp 0x434765
mov eax, dword [esp + 0x30]
movzx ecx, byte [eax]
mov dl, byte [eax + 1]
add eax, 1
add eax, 1
mov byte [esp + 0x10], cl
movzx ecx, byte [eax]
add eax, 1
mov byte [esp + 0x11], dl
mov byte [esp + 0x12], cl
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x10]
cmp dword [edi + 0x28], 0
je 0x434775
mov edx, dword [esp + 0x38]
cmp edx, dword [esp + 0x70]
jmp 0x434779
cmp eax, dword [esp + 0x74]
jne 0x434786
cmp byte [esp + 0x22], 0
jne 0x4348da
test bl, bl
je 0x4348da
cmp bl, 0xff
jne 0x4347bc
mov al, byte [esp + 0x10]
mov cl, byte [esp + 0x11]
mov dl, byte [esp + 0x12]
mov byte [ebp], al
add ebp, 1
mov byte [ebp], cl
add ebp, 1
mov byte [ebp], dl
add ebp, 1
mov byte [ebp], bl
add ebp, 1
jmp 0x4348dd
movzx ecx, byte [ebp + 1]
movzx edx, byte [ebp]
xor eax, eax
mov ah, byte [ebp + 3]
mov al, byte [ebp + 2]
shl eax, 8
or eax, ecx
xor ecx, ecx
mov ch, bl
shl eax, 8
or eax, edx
movzx edx, byte [esp + 0x12]
mov dword [esp + 0x1c], eax
or ecx, edx
movzx edx, byte [esp + 0x11]
shl ecx, 8
or ecx, edx
movzx edx, byte [esp + 0x10]
shl ecx, 8
or ecx, edx
mov dword [esp + 0x14], ecx
mov dl, byte [esp + 0x17]
test dl, dl
je 0x4348d7
cmp dl, 0xff
jne 0x434815
mov eax, ecx
jmp 0x4348d7
movzx ebx, byte [esp + 0x1f]
movzx edi, byte [esp + 0x17]
mov ecx, ebx
imul ecx, edi
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov al, byte [esp + 0x1f]
sub al, dl
add al, byte [esp + 0x17]
mov dword [esp + 0x34], edi
mov byte [esp + 0x23], al
je 0x4348c8
movzx edx, byte [esp + 0x1c]
movzx esi, al
movzx eax, byte [esp + 0x14]
imul eax, edi
mov edi, edx
imul edx, ecx
imul edi, ebx
add eax, edi
shl eax, 8
sub eax, edx
cdq
shl esi, 8
idiv esi
movzx edx, byte [esp + 0x1d]
mov edi, dword [esp + 0x34]
mov dword [esp + 0x50], edx
imul edx, ebx
mov byte [esp + 0x1c], al
movzx eax, byte [esp + 0x15]
imul eax, edi
add eax, edx
mov edx, dword [esp + 0x50]
imul edx, ecx
shl eax, 8
sub eax, edx
cdq
idiv esi
movzx edx, byte [esp + 0x1e]
mov byte [esp + 0x1d], al
movzx eax, byte [esp + 0x16]
imul eax, edi
mov edi, edx
imul edx, ecx
imul edi, ebx
add eax, edi
shl eax, 8
sub eax, edx
cdq
idiv esi
mov byte [esp + 0x1e], al
mov al, byte [esp + 0x23]
mov edi, dword [esp + 0xa4]
mov byte [esp + 0x1f], al
mov eax, dword [esp + 0x1c]
mov dword [ebp], eax
add ebp, 4
mov edx, dword [esp + 0x28]
mov eax, 1
add dword [esp + 0x24], eax
sub dword [esp + 0x44], eax
jne 0x4346c0
mov eax, 1
add dword [esp + 0x2c], eax
add edx, eax
sub dword [esp + 0x4c], eax
mov dword [esp + 0x28], edx
jne 0x434660
jmp 0x434d76
fild dword [esp + 0x18]
mov eax, ebp
sub eax, dword [esp + 0xb4]
test esi, esi
fidiv dword [esp + 0xb8]
fstp dword [esp + 0x50]
fild dword [edi + 0x10]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
mov dword [esp + 0x18], eax
fld st(0)
fidiv dword [esp + 0xbc]
fstp dword [esp + 0x2c]
fild dword [esp + 0x18]
fld dword [esp + 0x2c]
fld st(0)
fmulp st(2)
fxch st(2)
fsubrp st(1)
fstp dword [esp + 0x24]
jle 0x434d74
mov eax, dword [esp + 0xb0]
sub ebx, eax
mov dword [esp + 0x18], ebx
fild dword [esp + 0x18]
lea ecx, [eax*4]
fld dword [esp + 0x50]
neg ebp
fld st(0)
mov dword [esp + 0x48], ecx
fmulp st(2)
mov dword [esp + 0x30], ebp
fxch st(1)
mov dword [esp + 0x18], esi
fstp dword [esp + 0x78]
fld qword [0x4c35d0]
fld1
fldz
fld dword [esp + 0x24]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jp 0x4349b7
xor esi, esi
mov dword [esp + 0x44], esi
jmp 0x4349c4
fld st(0)
call fcn.0049ddc0
mov esi, eax
mov dword [esp + 0x44], eax
mov edx, dword [esp + 0xa4]
fld dword [esp + 0x78]
mov eax, dword [edx + 0xc]
fstp dword [esp + 0x28]
mov ecx, dword [esp + 0x30]
imul eax, esi
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x60]
lea ebp, [ecx + eax]
imul ebp, dword [esp + 0x64]
add ebp, dword [esp + 0x48]
add ebp, dword [esp + 0x6c]
cmp dword [esp + 0x40], 0
jle 0x434d55
mov edx, dword [esp + 0x40]
fsub st(2)
mov edi, dword [esp + 0xa4]
mov dword [esp + 0x34], edx
fstp dword [esp + 0x4c]
fld dword [esp + 0x4c]
jmp 0x434a29
fld dword [esp + 0x4c]
fld dword [esp + 0x2c]
fxch st(4)
fxch st(3)
fxch st(1)
fldz
fld dword [esp + 0x28]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jp 0x434a3e
xor eax, eax
jmp 0x434a45
fld st(0)
call fcn.0049ddc0
cmp byte [esp + 0x21], 0
je 0x434a5e
mov ecx, dword [esp + 0x3c]
lea edx, [eax + ecx]
mov ecx, dword [edi + 0x1bc]
mov dl, byte [edx + ecx]
jmp 0x434a61
or dl, 0xff
movzx ebx, byte [edi + 0x180]
add ebx, 1
movzx edx, dl
imul ebx, edx
sar ebx, 8
cmp dword [edi + 0x28], 0
je 0x434b29
mov ecx, eax
mov eax, edi
call fcn.00437cf0
fxch st(4)
movzx eax, al
fcom st(2)
mov dword [esp + 0x38], eax
fnstsw ax
test ah, 0x41
jne 0x434ad5
fxch st(2)
fcomp st(5)
fnstsw ax
test ah, 5
jp 0x434ad7
push 2
fxch st(4)
sub esp, 0x10
fstp dword [esp + 0xc]
lea ecx, [esp + 0x94]
fstp dword [esp + 8]
fxch st(2)
fstp dword [esp + 4]
fsubrp st(1)
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fstp dword [esp]
push ecx
call fcn.0043d150
jmp 0x434b01
fstp st(5)
fstp st(4)
push 2
fstp st(0)
sub esp, 8
fxch st(2)
lea edx, [esp + 0x94]
fstp dword [esp + 4]
fsubrp st(1)
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fstp dword [esp]
push edx
push edi
call fcn.0043b000
cmp byte [edi + 0x181], 0
mov eax, dword [eax]
mov dword [esp + 0x10], eax
je 0x434ba2
mov ecx, eax
shr ecx, 0x18
movzx edx, bl
add ecx, 1
imul ecx, edx
sar ecx, 8
mov bl, cl
jmp 0x434ba2
fxch st(4)
fcom st(2)
fnstsw ax
test ah, 0x41
jne 0x434b70
fxch st(2)
fcomp st(5)
fnstsw ax
test ah, 5
jp 0x434b72
push 2
fxch st(4)
sub esp, 0x10
fstp dword [esp + 0xc]
lea eax, [esp + 0xa0]
fstp dword [esp + 8]
fxch st(2)
fstp dword [esp + 4]
fsubrp st(1)
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fstp dword [esp]
push eax
call fcn.0043d150
jmp 0x434b9c
fstp st(5)
fstp st(4)
push 2
fstp st(0)
sub esp, 8
fxch st(2)
lea ecx, [esp + 0x90]
fstp dword [esp + 4]
fsubrp st(1)
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fstp dword [esp]
push ecx
push edi
call fcn.0043b000
mov eax, dword [eax]
mov dword [esp + 0x10], eax
cmp dword [edi + 0x28], 0
je 0x434bb2
mov edx, dword [esp + 0x38]
cmp edx, dword [esp + 0x70]
jmp 0x434bb6
cmp eax, dword [esp + 0x74]
jne 0x434bc3
cmp byte [esp + 0x22], 0
jne 0x434d1f
test bl, bl
je 0x434d1f
cmp bl, 0xff
jne 0x434bf9
mov al, byte [esp + 0x10]
mov cl, byte [esp + 0x11]
mov dl, byte [esp + 0x12]
mov byte [ebp], al
add ebp, 1
mov byte [ebp], cl
add ebp, 1
mov byte [ebp], dl
add ebp, 1
mov byte [ebp], bl
add ebp, 1
jmp 0x434d22
movzx ecx, byte [ebp + 1]
movzx edx, byte [ebp]
xor eax, eax
mov ah, byte [ebp + 3]
mov al, byte [ebp + 2]
shl eax, 8
or eax, ecx
xor ecx, ecx
mov ch, bl
shl eax, 8
or eax, edx
movzx edx, byte [esp + 0x12]
mov dword [esp + 0x1c], eax
or ecx, edx
movzx edx, byte [esp + 0x11]
shl ecx, 8
or ecx, edx
movzx edx, byte [esp + 0x10]
shl ecx, 8
or ecx, edx
mov dword [esp + 0x14], ecx
mov dl, byte [esp + 0x17]
test dl, dl
je 0x434d1c
cmp dl, 0xff
jne 0x434c52
mov eax, ecx
jmp 0x434d1c
movzx ebx, byte [esp + 0x1f]
movzx edi, byte [esp + 0x17]
mov ecx, ebx
imul ecx, edi
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov al, byte [esp + 0x1f]
sub al, dl
add al, byte [esp + 0x17]
mov dword [esp + 0x10], edi
mov byte [esp + 0x23], al
je 0x434d0d
movzx edx, byte [esp + 0x1c]
movzx esi, al
movzx eax, byte [esp + 0x14]
imul eax, edi
mov edi, edx
imul edx, ecx
imul edi, ebx
add eax, edi
shl eax, 8
sub eax, edx
cdq
shl esi, 8
idiv esi
movzx edx, byte [esp + 0x1d]
mov edi, dword [esp + 0x10]
mov dword [esp + 0x54], edx
imul edx, ebx
mov byte [esp + 0x1c], al
movzx eax, byte [esp + 0x15]
imul eax, edi
add eax, edx
mov edx, dword [esp + 0x54]
imul edx, ecx
shl eax, 8
sub eax, edx
cdq
idiv esi
movzx edx, byte [esp + 0x1e]
mov byte [esp + 0x1d], al
movzx eax, byte [esp + 0x16]
imul eax, edi
mov edi, edx
imul edx, ecx
imul edi, ebx
add eax, edi
shl eax, 8
sub eax, edx
cdq
idiv esi
mov esi, dword [esp + 0x44]
mov byte [esp + 0x1e], al
mov al, byte [esp + 0x23]
mov edi, dword [esp + 0xa4]
mov byte [esp + 0x1f], al
mov eax, dword [esp + 0x1c]
mov dword [ebp], eax
add ebp, 4
sub dword [esp + 0x34], 1
fld dword [esp + 0x28]
fld dword [esp + 0x50]
fld st(0)
faddp st(2)
fxch st(1)
fstp dword [esp + 0x28]
fld1
fld qword [0x4c35d0]
jne 0x434a1b
fld dword [esp + 0x24]
fld dword [esp + 0x2c]
fxch st(4)
fxch st(3)
fxch st(1)
mov eax, 1
fadd st(4)
add dword [esp + 0x30], eax
sub dword [esp + 0x18], eax
fstp dword [esp + 0x24]
jne 0x43499e
fstp st(1)
fstp st(2)
fstp st(0)
fstp st(0)
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0xa8]
push eax
push ecx
call dword [0x4a706c]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x90
ret 0x1c