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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x74
mov eax, dword [0x549944]
xor eax, esp
mov dword [esp + 0x70], eax
mov eax, dword [ebp + 0x10]
push ebx
mov ebx, ecx
mov dword [esp + 0x50], eax
xor eax, eax
mov dword [esp + 4], edx
mov dword [esp + 0x10], eax
push esi
mov eax, dword [ebx + 0x28]
mov esi, dword [ebp + 0xc]
mov dword [esp + 0x30], eax
inc eax
mov dword [ebx + 0x28], eax
mov eax, dword [ebx + 8]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x3c], esi
mov dword [esp + 0xc], eax
push edi
test eax, eax
jne 0x43e2c9
cmp dword [ebx + 0x78], eax
jne 0x43e2bc
mov eax, dword [ebx]
test byte [eax + 0x44], 8
jne 0x43e2bc
mov byte [ebx + 0x17], 1
call fcn.00425fe0
mov edx, dword [esp + 0xc]
mov dword [esp + 0x10], eax
test esi, esi
je 0x43e308
test dword [edx + 4], 0x800
je 0x43e308
mov eax, dword [edx + 0x14]
xor edx, edx
mov esi, dword [eax]
mov edi, dword [esi]
test edi, edi
jle 0x43e2f9
add esi, 4
mov ecx, dword [esi]
call fcn.0043de90
test eax, eax
jne 0x43e308
inc edx
add esi, 0x18
cmp edx, edi
jl 0x43e2e6
mov esi, dword [esp + 0x40]
xor eax, eax
cmp edx, edi
cmove esi, eax
mov dword [esp + 0x40], esi
cmp dword [ebx + 0x24], 0
mov edx, dword [esp + 0xc]
jne 0x43eada
mov eax, dword [edx + 4]
test eax, 0x800
je 0x43eada
test al, 0x20
jne 0x43eada
mov eax, dword [edx + 0x14]
cmp dword [eax + 0x30], 0
jne 0x43eada
test byte [eax + 8], 9
jne 0x43eada
cmp dword [eax + 0x38], 0
jne 0x43eada
cmp dword [eax + 0x20], 0
jne 0x43eada
mov ecx, dword [eax + 0x1c]
cmp dword [ecx], 1
jne 0x43eada
cmp dword [ecx + 0x1c], 0
jne 0x43eada
mov ebx, dword [ecx + 0x18]
mov dword [esp + 0x28], ebx
cmp dword [ebx + 0x38], 0
jne 0x43ead6
mov eax, dword [eax]
xor edx, edx
mov dword [esp + 0x44], eax
mov esi, dword [eax]
mov dword [esp + 0x1c], esi
test esi, esi
jle 0x43e3a6
lea ecx, [eax + 4]
mov eax, dword [ecx]
cmp byte [eax], 0x91
jne 0x43ead2
inc edx
add ecx, 0x18
cmp edx, esi
jl 0x43e393
mov edi, dword [esp + 0x14]
mov ecx, 0xfff0bdc0
mov esi, dword [ebx + 0x48]
mov eax, dword [edi]
mov dword [esp + 0x5c], eax
test esi, esi
je 0x43e3dc
mov edx, dword [eax + 0x14]
xor ecx, ecx
test edx, edx
jle 0x43e3dc
mov eax, dword [eax + 0x10]
add eax, 0xc
nop dword [eax + eax]
cmp dword [eax], esi
je 0x43e3dc
inc ecx
add eax, 0x10
cmp ecx, edx
jl 0x43e3d0
movzx eax, cx
mov edx, edi
movsx ecx, ax
mov eax, dword [edi + 0x78]
test eax, eax
mov dword [esp + 0x3c], ecx
cmovne edx, eax
mov eax, 1
shl eax, cl
mov esi, dword [edx + 0x5c]
test esi, eax
jne 0x43e414
bts esi, ecx
mov dword [edx + 0x5c], esi
cmp ecx, 1
jne 0x43e414
mov ecx, edx
call fcn.004519b0
mov ecx, dword [esp + 0x3c]
push dword [ebx]
mov edx, ecx
mov ecx, edi
push 0
push dword [ebx + 0x1c]
call fcn.00449ad0
mov edx, dword [esp + 0x28]
add esp, 0xc
cmp edx, 1
jne 0x43e519
mov eax, dword [esp + 0x44]
mov eax, dword [eax + 4]
cmp word [eax + 0x20], 0
jge 0x43e519
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 0xc]
mov esi, dword [edi + 0x88]
cmp dword [eax + 0x30], esi
jg 0x43e471
push 0
push 0
push 0
mov edx, 0x14
mov ecx, edi
call fcn.00426240
add esp, 0xc
mov esi, eax
jmp 0x43e4a7
lea eax, [esi + 1]
mov dword [edi + 0x88], eax
lea ecx, [esi + esi*4]
mov eax, dword [edi + 0x58]
mov dword [eax + ecx*4], 0x14
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x14]
push 0x68
push ebx
push dword [esp + 0x44]
call fcn.0045b4e0
mov eax, dword [edi]
add esp, 0xc
mov edx, dword [edi + 0x88]
mov dword [esp + 0x18], 1
cmp byte [eax + 0x49], 0
je 0x43e4f0
mov edi, dword [esp + 0x18]
mov eax, 0x550080
mov dword [eax + 8], edx
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x34]
mov dword [edx + 0x1c], eax
jmp 0x43ebab
test esi, esi
lea eax, [edx - 1]
cmovns eax, esi
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
mov dword [eax + ecx*4 + 8], edx
lea eax, [eax + ecx*4]
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x34]
mov edi, dword [esp + 0x18]
mov dword [edx + 0x1c], eax
jmp 0x43ebab
mov dword [esp + 0x2c], 0
mov eax, 1
mov dword [esp + 0x24], eax
test edx, edx
jle 0x43e60c
xor esi, esi
test eax, eax
je 0x43ead2
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0xc]
mov bl, byte [ecx]
mov al, bl
cmp al, 0x96
jne 0x43e54e
mov al, byte [ecx + 0x26]
cmp al, 0x97
jne 0x43e55b
mov eax, dword [ecx + 0x14]
mov edx, dword [eax]
mov edi, edx
jmp 0x43e566
cmp al, 0x77
jne 0x43e580
mov eax, dword [ecx + 0x14]
mov edx, dword [eax]
mov edi, dword [edx]
cmp edi, 1
jle 0x43e580
cmp bl, 0x77
je 0x43e57c
cmp byte [ecx + 0x26], 0x77
je 0x43e57c
mov ecx, dword [esi + eax + 4]
jmp 0x43e580
mov ecx, dword [esi + edx + 4]
mov eax, dword [esp + 0x44]
mov eax, dword [esi + eax + 4]
movsx edx, word [eax + 0x20]
test edx, edx
js 0x43e59f
mov eax, dword [esp + 0x28]
add edx, edx
mov eax, dword [eax + 4]
mov bl, byte [eax + edx*8 + 0xd]
jmp 0x43e5a1
mov bl, 0x44
call fcn.0043b770
test al, al
je 0x43e5bf
test bl, bl
je 0x43e5c7
cmp al, 0x43
jge 0x43e5bb
cmp bl, 0x43
jge 0x43e5bb
mov al, 0x41
jmp 0x43e5c9
mov al, 0x43
jmp 0x43e5c9
test bl, bl
jne 0x43e5c7
mov al, 0x41
jmp 0x43e5c9
add al, bl
movsx eax, al
sub eax, 0x41
je 0x43e5e4
sub eax, 1
je 0x43e5e4
xor eax, eax
cmp bl, 0x43
setge al
mov dword [esp + 0x24], eax
jmp 0x43e5e8
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x2c]
add esi, 0x18
mov edx, dword [esp + 0x1c]
inc ecx
mov dword [esp + 0x2c], ecx
cmp ecx, edx
jl 0x43e534
test eax, eax
je 0x43ead2
mov ebx, dword [esp + 0x28]
mov ebx, dword [ebx + 8]
mov dword [esp + 0x20], ebx
test ebx, ebx
je 0x43ead2
xor esi, esi
nop dword [eax]
test esi, esi
jne 0x43e505
movzx eax, word [ebx + 0x34]
mov ecx, eax
cmp ecx, edx
jl 0x43eabb
cmp eax, 0x3f
jae 0x43eabb
test byte [ebp + 8], 4
je 0x43e65f
movzx eax, word [ebx + 0x32]
cmp eax, edx
jg 0x43eabb
cmp ecx, edx
jle 0x43e65f
cmp byte [ebx + 0x36], 0
je 0x43eabb
mov dword [esp + 0x2c], 0
xorps xmm0, xmm0
movlpd qword [esp + 0x48], xmm0
test edx, edx
jle 0x43e82b
mov eax, dword [esp + 0x4c]
xor edi, edi
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x54], edi
mov dword [esp + 0x30], eax
nop
mov eax, dword [esp + 0xc]
mov edx, dword [eax + 0xc]
mov bl, byte [edx]
mov al, bl
cmp al, 0x96
jne 0x43e6a2
mov al, byte [edx + 0x26]
cmp al, 0x97
jne 0x43e6af
mov eax, dword [edx + 0x14]
mov ecx, dword [eax]
mov esi, ecx
jmp 0x43e6ba
cmp al, 0x77
jne 0x43e6d4
mov eax, dword [edx + 0x14]
mov ecx, dword [eax]
mov esi, dword [ecx]
cmp esi, 1
jle 0x43e6d4
cmp bl, 0x77
je 0x43e6d0
cmp byte [edx + 0x26], 0x77
je 0x43e6d0
mov edx, dword [edi + eax + 4]
jmp 0x43e6d4
mov edx, dword [edi + ecx + 4]
test dword [edx + 4], 0x100
mov eax, dword [esp + 0x44]
mov esi, dword [edi + eax + 4]
je 0x43e6f6
mov ecx, dword [esp + 0x14]
call fcn.0043b820
mov ecx, eax
mov dword [esp + 0x38], ecx
jmp 0x43e73a
test esi, esi
je 0x43e716
test dword [esi + 4], 0x100
je 0x43e716
mov ecx, dword [esp + 0x14]
mov edx, esi
call fcn.0043b820
mov ecx, eax
mov dword [esp + 0x38], ecx
jmp 0x43e73a
mov ebx, dword [esp + 0x14]
mov ecx, ebx
call fcn.0043b820
mov ecx, eax
mov dword [esp + 0x38], ecx
test ecx, ecx
jne 0x43e73a
mov edx, esi
mov ecx, ebx
call fcn.0043b820
mov ecx, eax
mov dword [esp + 0x38], eax
mov edi, dword [esp + 0x20]
xor ebx, ebx
movzx edx, word [esi + 0x20]
mov dword [esp + 0x50], edx
mov eax, dword [edi + 4]
mov dword [esp + 0x28], eax
nop
cmp word [eax], dx
jne 0x43e7ad
test ecx, ecx
je 0x43e7bf
mov esi, dword [ecx]
mov eax, dword [edi + 0x20]
mov edi, dword [eax + ebx*4]
mov al, byte [esi]
movzx ecx, al
movzx edx, byte [ecx + 0x53ea00]
movzx ecx, byte [edi]
movzx ecx, byte [ecx + 0x53ea00]
sub edx, ecx
jne 0x43e7a1
sub edi, esi
nop dword [eax]
test al, al
je 0x43e7bf
movzx ecx, byte [edi + esi + 1]
inc esi
movzx edx, byte [ecx + 0x53ea00]
mov al, byte [esi]
movzx ecx, al
movzx ecx, byte [ecx + 0x53ea00]
sub ecx, edx
je 0x43e780
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x38]
inc ebx
add eax, 2
mov dword [esp + 0x28], eax
cmp ebx, dword [esp + 0x1c]
jl 0x43e750
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x24]
cmp ebx, edx
je 0x43e83d
xor edx, edx
mov eax, ebx
bts edx, eax
xor esi, esi
cmp eax, 0x20
cmovae esi, edx
xor edx, esi
cmp eax, 0x40
mov ecx, edx
cmovae esi, edx
and ecx, dword [esp + 0x30]
mov eax, esi
and eax, edi
or ecx, eax
jne 0x43e839
or dword [esp + 0x30], edx
or edi, esi
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x24], edi
test eax, eax
je 0x43e809
mov dword [eax + ecx*4], ebx
mov edi, dword [esp + 0x54]
inc ecx
mov edx, dword [esp + 0x1c]
add edi, 0x18
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x54], edi
cmp ecx, edx
jl 0x43e690
mov edi, dword [esp + 0x24]
jmp 0x43e83d
mov eax, dword [esp + 0x48]
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x30], eax
jmp 0x43e845
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x20]
mov esi, dword [esp + 0x18]
mov eax, edx
xor ecx, ecx
xor edx, edx
bts ecx, eax
cmp eax, 0x20
cmovae edx, ecx
xor ecx, edx
cmp eax, 0x40
cmovae edx, ecx
add ecx, 0xffffffff
adc edx, 0xffffffff
cmp dword [esp + 0x30], ecx
jne 0x43eab7
cmp edi, edx
jne 0x43eab7
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0xc]
mov edi, dword [esi + 0x88]
cmp dword [eax + 0x30], edi
jg 0x43e89f
push 0
push 0
push 0
mov edx, 0x14
mov ecx, esi
call fcn.00426240
add esp, 0xc
mov edi, eax
jmp 0x43e8d5
lea eax, [edi + 1]
mov dword [esi + 0x88], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0x14
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push dword [ebx]
push 0x539eb8
push dword [esp + 0x64]
call fcn.00407470
mov ecx, dword [esp + 0x1c]
mov esi, eax
add esp, 0xc
mov eax, dword [ecx + 0xc]
mov edx, dword [ecx + 0x88]
cmp dword [eax + 0x30], edx
jg 0x43e913
push 0
push 0
push 0
mov edx, 0xa7
call fcn.00426240
add esp, 0xc
mov edx, eax
jmp 0x43e951
mov ebx, dword [esp + 0x20]
lea eax, [edx + 1]
mov dword [ecx + 0x88], eax
lea ecx, [edx + edx*4]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x58]
mov dword [eax + ecx*4], 0xa7
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
cmp byte [ecx + 0x49], 0
je 0x43e96d
push esi
mov edx, 0xfffffff9
call fcn.00426b10
add esp, 4
jmp 0x43e9a8
test edx, edx
jns 0x43e978
mov edx, dword [eax + 0x88]
dec edx
mov eax, dword [eax + 0x58]
lea ecx, [edx + edx*4]
cmp byte [eax + ecx*4 + 1], 0
lea eax, [eax + ecx*4]
je 0x43e99d
push 0xfffffffffffffff9
push esi
mov esi, dword [esp + 0x18]
mov edx, eax
mov ecx, esi
call fcn.00426c90
add esp, 8
jmp 0x43e9ac
test esi, esi
je 0x43e9a8
mov dword [eax + 0x10], esi
mov byte [eax + 1], 0xf9
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
mov edx, dword [ebx + 0x2c]
cmp dword [eax + 0x30], ecx
jg 0x43e9d7
push dword [esp + 0x3c]
mov ecx, esi
push edx
push dword [esp + 0x3c]
mov edx, 0x68
call fcn.00426240
add esp, 0xc
jmp 0x43ea09
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov esi, dword [esp + 0x34]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x3c]
mov dword [eax + ecx*4], 0x68
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x14]
mov edx, ebx
mov ecx, eax
mov esi, dword [eax + 8]
call fcn.00452430
mov edx, eax
test edx, edx
je 0x43ea4c
mov ecx, dword [esi]
cmp byte [ecx + 0x49], 0
je 0x43ea37
push edx
mov edx, 0xfffffff7
call fcn.00426b10
add esp, 4
jmp 0x43ea4c
mov eax, dword [esi + 0x88]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
mov byte [eax + ecx*4 - 0x13], 0xf7
mov dword [eax + ecx*4 - 4], edx
mov eax, dword [ebx + 0x1c]
mov edx, dword [esp + 0x40]
movzx esi, byte [eax]
add esi, 3
mov dword [esp + 0x18], esi
test edx, edx
je 0x43ea86
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x2c]
inc eax
cmp dword [esp + 0x1c], 1
mov dword [ecx + 0x2c], eax
mov dword [edx], eax
jne 0x43ea86
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x10]
push eax
call fcn.0043e0f0
add esp, 4
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x88]
mov eax, dword [eax]
cmp byte [eax + 0x49], 0
je 0x43ea9f
mov eax, 0x550080
jmp 0x43eab4
test edi, edi
lea eax, [edx - 1]
cmovns eax, edi
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x58]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov edx, dword [esp + 0x1c]
mov ebx, dword [ebx + 0x14]
mov dword [esp + 0x20], ebx
test ebx, ebx
jne 0x43e620
test esi, esi
jne 0x43e505
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x14]
mov eax, dword [ebp + 8]
test al, 1
je 0x43eb45
test dword [edx + 4], 0x800
jne 0x43eb45
mov esi, dword [edx + 0xc]
lea ecx, [esp + 0x60]
mov dword [edx + 0xc], 0
mov byte [esp + 0x74], 1
mov dword [esp + 0x64], fcn.0043dc00
mov dword [esp + 0x68], 0x43dbe0
mov dword [esp + 0x78], 0
call fcn.00439220
cmp byte [esp + 0x74], 0
mov edx, dword [esp + 0xc]
mov dword [edx + 0xc], esi
je 0x43eb30
mov eax, dword [edx + 0x14]
cmp dword [eax], 2
jg 0x43eb42
mov eax, dword [esp + 0x34]
mov edi, 5
mov dword [esp + 0x18], edi
mov dword [edx + 0x1c], eax
jmp 0x43ebab
mov eax, dword [ebp + 8]
mov esi, dword [ebx + 0x84]
xor ecx, ecx
mov edi, 2
mov dword [esp + 0x18], edi
test al, 4
je 0x43eb7d
mov dword [ebx + 0x84], ecx
mov eax, dword [edx + 0xc]
cmp word [eax + 0x20], cx
jge 0x43eb8d
test dword [edx + 4], 0x800
jne 0x43eb8d
mov edi, 1
mov dword [esp + 0x18], edi
jmp 0x43eb8d
mov eax, dword [esp + 0x40]
test eax, eax
je 0x43eb8d
inc dword [ebx + 0x2c]
mov ecx, dword [ebx + 0x2c]
mov dword [eax], ecx
xor eax, eax
cmp edi, 1
sete al
push eax
push ecx
mov ecx, ebx
call fcn.0043edf0
mov edx, dword [esp + 0x14]
add esp, 8
mov dword [ebx + 0x84], esi
mov ebx, dword [esp + 0x58]
test ebx, ebx
je 0x43eca8
cmp edi, 3
je 0x43eca8
cmp edi, 4
je 0x43eca8
mov ecx, dword [edx + 0xc]
mov al, byte [ecx]
cmp al, 0x96
jne 0x43ebd5
mov al, byte [ecx + 0x26]
cmp al, 0x97
jne 0x43ebde
lea eax, [ecx + 0x14]
jmp 0x43ebe9
cmp al, 0x77
jne 0x43ec91
mov eax, dword [ecx + 0x14]
mov eax, dword [eax]
mov esi, dword [eax]
test esi, esi
jle 0x43eca8
xor ecx, ecx
cmp esi, 0x10
jb 0x43eca0
movaps xmm1, xmmword [0x540df0]
mov eax, esi
and eax, 0x8000000f
jns 0x43ec15
dec eax
or eax, 0xfffffff0
inc eax
mov edi, esi
lea edx, [ebx + 0x20]
sub edi, eax
nop dword [eax]
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm0, xmm0, 0
lea edx, [edx + 0x40]
paddd xmm0, xmm1
movups xmmword [edx - 0x60], xmm0
movd xmm0, eax
lea eax, [ecx + 8]
pshufd xmm0, xmm0, 0
paddd xmm0, xmm1
movups xmmword [edx - 0x50], xmm0
movd xmm0, eax
lea eax, [ecx + 0xc]
pshufd xmm0, xmm0, 0
add ecx, 0x10
paddd xmm0, xmm1
movups xmmword [edx - 0x40], xmm0
movd xmm0, eax
pshufd xmm0, xmm0, 0
paddd xmm0, xmm1
movups xmmword [edx - 0x30], xmm0
cmp ecx, edi
jl 0x43ec20
cmp ecx, esi
jl 0x43ec9a
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x70]
xor ecx, esp
call fcn.004e5962
mov esp, ebp
pop ebp
ret
mov esi, 1
xor ecx, ecx
jmp 0x43eca0
mov edi, dword [esp + 0x18]
nop
mov dword [ebx + ecx*4], ecx
inc ecx
cmp ecx, esi
jl 0x43eca0
mov ecx, dword [esp + 0x7c]
mov eax, edi
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004e5962
mov esp, ebp
pop ebp
ret