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

Disassembly:
push 0xffffffffffffffff
push 0x480580
mov eax, dword fs:[0]
push eax
sub esp, 0x68
push ebx
push ebp
push esi
push edi
mov eax, dword [0x48a120]
xor eax, esp
push eax
lea eax, [esp + 0x7c]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [esp + 0x18], ebx
mov edx, dword [esp + 0x9c]
mov dword [esp + 0x58], 0
mov esi, dword [edx + 8]
mov edx, dword [edx + 0xc]
test esi, esi
je 0x4426ab
lea eax, [esi - 1]
lea eax, [edx + eax*4]
lea esp, [esp]
cmp dword [eax], 0
jne 0x442710
sub eax, 4
dec esi
jne 0x4426a0
xor edi, edi
mov ecx, dword [esp + 0x94]
mov dword [esp + 0x40], edi
mov esi, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
test esi, esi
je 0x4426d3
lea eax, [esi - 1]
lea eax, [ecx + eax*4]
cmp dword [eax], 0
jne 0x442729
sub eax, 4
dec esi
jne 0x4426c8
xor ecx, ecx
cmp ecx, edi
mov dword [esp + 0x3c], ecx
lea eax, [esp + 0x40]
lea edx, [esp + 0x3c]
cmovae eax, edx
mov eax, dword [eax]
mov dword [esp + 0x54], eax
test eax, eax
jne 0x442742
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 8]
mov ecx, dword [esp + 0x8c]
push eax
call fcn.00431760
mov eax, dword [esp + 0x8c]
jmp 0x44330a
test esi, esi
je 0x4426ab
lea ecx, [edx - 4]
lea ecx, [ecx + esi*4]
call fcn.0041ed60
lea edi, [esi - 1]
shl edi, 5
add edi, eax
jmp 0x4426ad
test esi, esi
je 0x4426d3
lea ecx, [ecx + esi*4]
add ecx, 0xfffffffc
call fcn.0041ed60
lea ecx, [esi - 1]
shl ecx, 5
add ecx, eax
jmp 0x4426d5
cmp eax, 0x2e
ja 0x44274e
mov ecx, 1
jmp 0x44275c
mov ecx, 0x104
cmp ecx, eax
sbb ecx, ecx
neg ecx
add ecx, 2
mov esi, 1
mov dword [esp + 0x24], ecx
shl esi, cl
mov eax, esi
mov dword [esp + 0x1c], esi
shl eax, cl
lea ecx, [esp + 0x5c]
push eax
mov dword [esp + 0x24], eax
call fcn.00448970
mov ebx, dword [esp + 0x90]
mov dword [esp + 0x84], 0
mov ebp, dword [esp + 0x5c]
push ebx
lea edi, [ebp + 0x14]
mov ecx, edi
mov dword [esp + 0x2c], edi
call fcn.00431af0
lea eax, [esi + esi*4]
shl eax, 2
mov dword [esp + 0x48], eax
add eax, ebp
mov ebp, dword [esp + 0x98]
mov ecx, eax
push ebp
mov dword [esp + 0x44], eax
call fcn.00431af0
cmp dword [esp + 0x24], 1
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx]
jne 0x4427e5
mov esi, dword [esp + 0x5c]
push ebp
push ebx
call dword [eax + 0xc]
push eax
lea ecx, [esi + 0x3c]
call fcn.00431af0
jmp 0x442de1
mov ebx, dword [esp + 0x5c]
push dword [esp + 0x90]
add ebx, 0x28
call dword [eax + 0x18]
push eax
mov ecx, ebx
call fcn.00431af0
mov ecx, dword [esp + 0x18]
lea eax, [esi + esi*4]
mov esi, dword [esp + 0x5c]
shl eax, 3
add esi, eax
mov dword [esp + 0x50], eax
mov eax, dword [ecx]
push ebp
mov dword [esp + 0x50], esi
mov ebp, ecx
call dword [eax + 0x18]
push eax
mov ecx, esi
call fcn.00431af0
mov edx, dword [esp + 0x1c]
cmp edx, 3
jbe 0x442863
mov esi, dword [esp + 0x5c]
lea edi, [edx - 4]
shr edi, 1
add esi, 0x3c
inc edi
lea esp, [esp]
mov edx, dword [ebp]
lea eax, [esi - 0x28]
push ebx
push eax
mov ecx, ebp
call dword [edx + 0xc]
push eax
mov ecx, esi
call fcn.00431af0
add esi, 0x28
dec edi
jne 0x442840
mov edi, dword [esp + 0x28]
mov edx, dword [esp + 0x1c]
cmp edx, 1
jbe 0x442a41
mov ecx, dword [esp + 0x40]
lea eax, [edx + 1]
mov ebx, dword [esp + 0x20]
add edx, 0xfffffffe
add ecx, 0x1c
shr edx, 1
inc edx
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], edx
lea esp, [esp]
mov esi, eax
mov dword [esp + 0x2c], esi
cmp eax, ebx
jae 0x442a21
mov dword [esp + 0x30], edi
mov ebp, ecx
mov ecx, dword [esp + 0x18]
push dword [esp + 0x98]
push edi
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ebx, eax
lea ecx, [ebp - 8]
mov dword [esp + 0x44], ebx
cmp ecx, ebx
je 0x4429ef
mov edx, dword [ebx + 8]
cmp dword [ebp], edx
jne 0x4428df
mov ecx, dword [ebx + 0xc]
mov eax, edx
shr eax, 1
cmp dword [ecx + eax*4], 0
jne 0x4429ce
mov eax, dword [ebx + 0xc]
test edx, edx
je 0x4428fb
lea eax, [eax + edx*4]
add eax, 0xfffffffc
lea esp, [esp]
cmp dword [eax], 0
jne 0x4428fb
sub eax, 4
dec edx
jne 0x4428f0
cmp edx, 8
ja 0x442909
mov esi, dword [edx*4 + 0x408d20]
jmp 0x442965
cmp edx, 0x10
ja 0x442915
mov esi, 0x10
jmp 0x442965
cmp edx, 0x20
ja 0x442921
mov esi, 0x20
jmp 0x442965
cmp edx, 0x40
ja 0x44292d
mov esi, 0x40
jmp 0x442965
lea edi, [edx - 1]
test edi, edi
jne 0x442938
xor edx, edx
jmp 0x44295c
xor esi, esi
mov edx, 0x20
nop
lea ecx, [edx + esi]
mov eax, edi
shr ecx, 1
shr eax, cl
test eax, eax
je 0x442951
mov esi, ecx
jmp 0x442953
mov edx, ecx
mov eax, edx
sub eax, esi
cmp eax, 1
ja 0x442940
mov esi, 1
mov ecx, edx
shl esi, cl
mov ebx, dword [ebp]
mov edx, dword [ebp + 4]
cmp ebx, esi
je 0x4429bc
xor eax, eax
mov edi, edx
mov ecx, ebx
rep stosd dword es:[edi], eax
lea eax, [ebx*4]
push edx
cmp eax, 0x10
jb 0x44298b
call fcn.0046994f
jmp 0x442990
call fcn.00469885
add esp, 4
mov ecx, esi
call fcn.00437f20
test esi, esi
jne 0x4429a2
xor edx, edx
jmp 0x4429bc
lea ecx, [esi*4]
cmp ecx, 0x10
jb 0x4429b5
call fcn.00420850
jmp 0x4429ba
call fcn.004208d0
mov edx, eax
mov ebx, dword [esp + 0x44]
mov edi, dword [esp + 0x30]
mov dword [ebp], esi
mov esi, dword [esp + 0x2c]
mov dword [ebp + 4], edx
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebp + 4]
mov eax, dword [ebp]
cmp edx, ecx
je 0x4429e9
shl eax, 2
push eax
push ecx
push edx
call fcn.00468f60
add esp, 0xc
mov eax, dword [ebx + 0x10]
mov dword [ebp + 8], eax
add esi, dword [esp + 0x1c]
add edi, dword [esp + 0x48]
add ebp, dword [esp + 0x48]
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], edi
cmp esi, dword [esp + 0x20]
jb 0x4428a4
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x28]
mov edx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x20]
add eax, 2
add edi, 0x28
add ecx, 0x28
mov dword [esp + 0x34], eax
dec edx
mov dword [esp + 0x28], edi
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], edx
jne 0x442890
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
lea esi, [edi + edi*2]
mov dword [esp + 0x98], esi
cmp esi, eax
jae 0x442bee
lea ecx, [edi + edi]
mov eax, esi
sub eax, ecx
lea ebp, [esi*4 + 2]
mov ecx, dword [esp + 0x5c]
add ebp, esi
lea eax, [eax + eax*4]
lea edi, [ecx + eax*4]
mov dword [esp + 0x3c], edi
lea ebp, [ecx + ebp*4]
lea esp, [esp]
mov ecx, dword [esp + 0x18]
push dword [esp + 0x4c]
push edi
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ebx, eax
lea ecx, [ebp - 8]
mov dword [esp + 0x48], ebx
cmp ecx, ebx
je 0x442bc6
mov edx, dword [ebx + 8]
cmp dword [ebp], edx
jne 0x442ab8
mov ecx, dword [ebx + 0xc]
mov eax, edx
shr eax, 1
cmp dword [ecx + eax*4], 0
jne 0x442ba5
mov eax, dword [ebx + 0xc]
test edx, edx
je 0x442ad0
lea eax, [eax + edx*4]
add eax, 0xfffffffc
cmp dword [eax], 0
jne 0x442ad0
sub eax, 4
dec edx
jne 0x442ac5
cmp edx, 8
ja 0x442ade
mov esi, dword [edx*4 + 0x408d20]
jmp 0x442b39
cmp edx, 0x10
ja 0x442aea
mov esi, 0x10
jmp 0x442b39
cmp edx, 0x20
ja 0x442af6
mov esi, 0x20
jmp 0x442b39
cmp edx, 0x40
ja 0x442b02
mov esi, 0x40
jmp 0x442b39
lea edi, [edx - 1]
test edi, edi
jne 0x442b0d
xor edx, edx
jmp 0x442b30
xor esi, esi
mov edx, 0x20
lea ecx, [edx + esi]
mov eax, edi
shr ecx, 1
shr eax, cl
test eax, eax
je 0x442b25
mov esi, ecx
jmp 0x442b27
mov edx, ecx
mov eax, edx
sub eax, esi
cmp eax, 1
ja 0x442b14
mov esi, 1
mov ecx, edx
shl esi, cl
mov ebx, dword [ebp]
mov edx, dword [ebp + 4]
cmp ebx, esi
je 0x442b90
xor eax, eax
mov edi, edx
mov ecx, ebx
rep stosd dword es:[edi], eax
lea eax, [ebx*4]
push edx
cmp eax, 0x10
jb 0x442b5f
call fcn.0046994f
jmp 0x442b64
call fcn.00469885
add esp, 4
mov ecx, esi
call fcn.00437f20
test esi, esi
jne 0x442b76
xor edx, edx
jmp 0x442b90
lea ecx, [esi*4]
cmp ecx, 0x10
jb 0x442b89
call fcn.00420850
jmp 0x442b8e
call fcn.004208d0
mov edx, eax
mov ebx, dword [esp + 0x48]
mov edi, dword [esp + 0x3c]
mov dword [ebp], esi
mov esi, dword [esp + 0x98]
mov dword [ebp + 4], edx
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebp + 4]
mov eax, dword [ebp]
cmp edx, ecx
je 0x442bc0
shl eax, 2
push eax
push ecx
push edx
call fcn.00468f60
add esp, 0xc
mov eax, dword [ebx + 0x10]
mov dword [ebp + 8], eax
mov ecx, dword [esp + 0x1c]
add edi, dword [esp + 0x50]
add ebp, dword [esp + 0x50]
mov eax, dword [esp + 0x20]
lea esi, [esi + ecx*2]
mov dword [esp + 0x3c], edi
mov dword [esp + 0x98], esi
cmp esi, eax
jb 0x442a80
mov edi, ecx
mov edx, edi
mov dword [esp + 0x3c], edx
cmp edi, eax
jae 0x442de5
mov ebx, dword [esp + 0x40]
lea esi, [edi + edi]
lea eax, [esi + esi*4]
mov dword [esp + 0x4c], esi
shl eax, 2
add ebx, 0x30
mov dword [esp + 0x48], eax
mov ecx, esi
mov eax, 2
mov dword [esp + 0x38], ecx
sub eax, edi
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], eax
lea esp, [esp]
add eax, ecx
cmp eax, ecx
jae 0x442dbf
mov esi, ecx
mov ebp, ebx
sub esi, eax
dec esi
shr esi, 1
inc esi
mov dword [esp + 0x98], esi
jmp 0x442c50
mov ecx, dword [esp + 0x18]
lea eax, [ebp - 0x1c]
push dword [esp + 0x90]
push eax
mov edx, dword [ecx]
call dword [edx + 0xc]
mov ebx, eax
lea ecx, [ebp - 8]
mov dword [esp + 0x50], ebx
cmp ecx, ebx
je 0x442d9e
mov edx, dword [ebx + 8]
cmp dword [ebp], edx
jne 0x442c8e
mov ecx, dword [ebx + 0xc]
mov eax, edx
shr eax, 1
cmp dword [ecx + eax*4], 0
jne 0x442d7d
mov eax, dword [ebx + 0xc]
test edx, edx
je 0x442cab
lea eax, [eax + edx*4]
add eax, 0xfffffffc
jmp 0x442ca0
cmp dword [eax], 0
jne 0x442cab
sub eax, 4
dec edx
jne 0x442ca0
cmp edx, 8
ja 0x442cb9
mov esi, dword [edx*4 + 0x408d20]
jmp 0x442d15
cmp edx, 0x10
ja 0x442cc5
mov esi, 0x10
jmp 0x442d15
cmp edx, 0x20
ja 0x442cd1
mov esi, 0x20
jmp 0x442d15
cmp edx, 0x40
ja 0x442cdd
mov esi, 0x40
jmp 0x442d15
lea edi, [edx - 1]
test edi, edi
jne 0x442ce8
xor edx, edx
jmp 0x442d0c
xor esi, esi
mov edx, 0x20
nop
lea ecx, [edx + esi]
mov eax, edi
shr ecx, 1
shr eax, cl
test eax, eax
je 0x442d01
mov esi, ecx
jmp 0x442d03
mov edx, ecx
mov eax, edx
sub eax, esi
cmp eax, 1
ja 0x442cf0
mov esi, 1
mov ecx, edx
shl esi, cl
mov ebx, dword [ebp]
mov edx, dword [ebp + 4]
cmp ebx, esi
je 0x442d6c
xor eax, eax
mov edi, edx
mov ecx, ebx
rep stosd dword es:[edi], eax
lea eax, [ebx*4]
push edx
cmp eax, 0x10
jb 0x442d3b
call fcn.0046994f
jmp 0x442d40
call fcn.00469885
add esp, 4
mov ecx, esi
call fcn.00437f20
test esi, esi
jne 0x442d52
xor edx, edx
jmp 0x442d6c
lea ecx, [esi*4]
cmp ecx, 0x10
jb 0x442d65
call fcn.00420850
jmp 0x442d6a
call fcn.004208d0
mov edx, eax
mov ebx, dword [esp + 0x50]
mov dword [ebp], esi
mov esi, dword [esp + 0x98]
mov dword [ebp + 4], edx
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebp + 4]
mov eax, dword [ebp]
cmp edx, ecx
je 0x442d98
shl eax, 2
push eax
push ecx
push edx
call fcn.00468f60
add esp, 0xc
mov eax, dword [ebx + 0x10]
mov dword [ebp + 8], eax
add ebp, 0x28
dec esi
mov dword [esp + 0x98], esi
jne 0x442c50
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x4c]
add ebx, dword [esp + 0x48]
add edx, esi
mov eax, dword [esp + 0x44]
add ecx, esi
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x38], ecx
cmp edx, dword [esp + 0x20]
jb 0x442c30
mov edi, dword [esp + 0x1c]
cmp dword [0x4912f0], 0
jne 0x442dfd
call fcn.00430000
mov dword [0x4912f0], 0x4257c0
mov ecx, 2
mov dword [esp + 0x68], 0x408d10
mov dword [esp + 0x70], 2
call fcn.00437f20
mov ecx, 8
call fcn.004208d0
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], 0
mov dword [eax + 4], 0
mov eax, dword [esp + 0x74]
mov dword [eax], 0
mov ebp, dword [esp + 0x54]
xor ecx, ecx
xor eax, eax
mov byte [esp + 0x84], 1
mov dword [esp + 0x98], ecx
mov dword [esp + 0x20], eax
lea esi, [ebp - 1]
mov byte [esp + 0x90], 1
dec ebp
mov dword [esp + 0x40], ebp
js 0x4430d3
mov ebx, dword [esp + 0x70]
mov eax, dword [esp + 0x94]
mov edx, ebp
shr edx, 5
cmp edx, dword [eax + 8]
jb 0x442e88
xor al, al
jmp 0x442e9e
mov eax, dword [eax + 0xc]
mov ecx, ebp
and ecx, 0x1f
mov eax, dword [eax + edx*4]
shr eax, cl
mov ecx, dword [esp + 0x98]
and al, 1
movzx eax, al
lea ecx, [eax + ecx*2]
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x98], ecx
cmp edx, dword [eax + 8]
jb 0x442ebb
xor al, al
jmp 0x442ed1
mov eax, dword [eax + 0xc]
mov ecx, ebp
and ecx, 0x1f
mov eax, dword [eax + edx*4]
shr eax, cl
mov ecx, dword [esp + 0x98]
and al, 1
mov edx, dword [esp + 0x20]
movzx eax, al
lea edx, [eax + edx*2]
mov dword [esp + 0x20], edx
test ebp, ebp
je 0x442ef5
lea eax, [ecx + ecx]
cmp eax, edi
jae 0x442ef5
lea eax, [edx + edx]
cmp eax, edi
jb 0x4430c8
sub esi, ebp
mov dword [esp + 0x50], ebp
xor edi, edi
lea ecx, [ecx]
test ecx, ecx
jne 0x442f08
test edx, edx
je 0x442f1a
test cl, 1
jne 0x442f1a
test dl, 1
jne 0x442f1a
shr ecx, 1
dec esi
shr edx, 1
inc edi
jmp 0x442f00
cmp byte [esp + 0x90], 0
mov dword [esp + 0x28], edi
mov dword [esp + 0x98], ecx
mov dword [esp + 0x20], edx
je 0x443111
mov ecx, dword [esp + 0x24]
shl edx, cl
add edx, dword [esp + 0x98]
mov ecx, dword [esp + 0x5c]
lea eax, [edx + edx*4]
lea ebp, [ecx + eax*4]
lea eax, [esp + 0x68]
cmp eax, ebp
je 0x443080
mov edx, dword [ebp + 8]
cmp ebx, edx
jne 0x442f72
mov ecx, dword [ebp + 0xc]
mov eax, edx
shr eax, 1
cmp dword [ecx + eax*4], 0
jne 0x443058
mov eax, dword [ebp + 0xc]
test edx, edx
je 0x442f8b
lea eax, [eax + edx*4]
add eax, 0xfffffffc
nop
cmp dword [eax], 0
jne 0x442f8b
sub eax, 4
dec edx
jne 0x442f80
cmp edx, 8
ja 0x442f99
mov esi, dword [edx*4 + 0x408d20]
jmp 0x442ff5
cmp edx, 0x10
ja 0x442fa5
mov esi, 0x10
jmp 0x442ff5
cmp edx, 0x20
ja 0x442fb1
mov esi, 0x20
jmp 0x442ff5
cmp edx, 0x40
ja 0x442fbd
mov esi, 0x40
jmp 0x442ff5
lea edi, [edx - 1]
test edi, edi
jne 0x442fc8
xor edx, edx
jmp 0x442fec
xor esi, esi
mov edx, 0x20
nop
lea ecx, [edx + esi]
mov eax, edi
shr ecx, 1
shr eax, cl
test eax, eax
je 0x442fe1
mov esi, ecx
jmp 0x442fe3
mov edx, ecx
mov eax, edx
sub eax, esi
cmp eax, 1
ja 0x442fd0
mov esi, 1
mov ecx, edx
shl esi, cl
mov edx, dword [esp + 0x74]
cmp ebx, esi
je 0x44304a
xor eax, eax
mov edi, edx
mov ecx, ebx
rep stosd dword es:[edi], eax
lea eax, [ebx*4]
push edx
cmp eax, 0x10
jb 0x443019
call fcn.0046994f
jmp 0x44301e
call fcn.00469885
add esp, 4
mov ecx, esi
call fcn.00437f20
test esi, esi
jne 0x443030
xor edx, edx
jmp 0x44304a
lea ecx, [esi*4]
cmp ecx, 0x10
jb 0x443043
call fcn.00420850
jmp 0x443048
call fcn.004208d0
mov edx, eax
mov edi, dword [esp + 0x28]
mov ebx, esi
mov dword [esp + 0x74], edx
mov dword [esp + 0x70], ebx
mov ecx, dword [ebp + 0xc]
mov edx, dword [esp + 0x74]
cmp edx, ecx
je 0x443079
lea eax, [ebx*4]
push eax
push ecx
push edx
call fcn.00468f60
mov ebx, dword [esp + 0x7c]
add esp, 0xc
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x78], eax
mov byte [esp + 0x90], 0
mov esi, dword [esp + 0x18]
test edi, edi
je 0x4430ad
mov eax, dword [esi]
lea ecx, [esp + 0x68]
push ecx
mov ecx, esi
call dword [eax + 0x18]
push eax
lea ecx, [esp + 0x6c]
call fcn.00431af0
dec edi
jne 0x443090
mov ebx, dword [esp + 0x70]
mov ebp, dword [esp + 0x40]
xor eax, eax
mov esi, dword [esp + 0x50]
xor ecx, ecx
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x20], eax
mov dword [esp + 0x98], ecx
dec ebp
mov dword [esp + 0x40], ebp
jns 0x442e73
mov ebx, dword [esp + 0x8c]
lea eax, [esp + 0x68]
push eax
mov ecx, ebx
call fcn.00431760
mov edx, dword [esp + 0x70]
xor eax, eax
mov esi, dword [esp + 0x74]
mov ecx, edx
mov edi, esi
rep stosd dword es:[edi], eax
lea eax, [edx*4]
push esi
cmp eax, 0x10
jb 0x4432c8
call fcn.0046994f
jmp 0x4432cd
test esi, esi
je 0x443287
lea esp, [esp]
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x68]
dec esi
push edx
mov dword [esp + 0x58], esi
mov eax, dword [ecx]
call dword [eax + 0x18]
mov ebx, dword [esp + 0x70]
mov ebp, eax
lea eax, [esp + 0x68]
cmp eax, ebp
je 0x443270
mov ecx, dword [ebp + 8]
cmp ebx, ecx
jne 0x44315d
mov edx, dword [ebp + 0xc]
mov eax, ecx
shr eax, 1
cmp dword [edx + eax*4], 0
jne 0x443248
mov eax, dword [ebp + 0xc]
test ecx, ecx
je 0x44317b
lea eax, [eax + ecx*4]
add eax, 0xfffffffc
lea ebx, [ebx]
cmp dword [eax], 0
jne 0x44317b
sub eax, 4
dec ecx
jne 0x443170
cmp ecx, 8
ja 0x443189
mov esi, dword [ecx*4 + 0x408d20]
jmp 0x4431e5
cmp ecx, 0x10
ja 0x443195
mov esi, 0x10
jmp 0x4431e5
cmp ecx, 0x20
ja 0x4431a1
mov esi, 0x20
jmp 0x4431e5
cmp ecx, 0x40
ja 0x4431ad
mov esi, 0x40
jmp 0x4431e5
lea edi, [ecx - 1]
test edi, edi
jne 0x4431b8
xor edx, edx
jmp 0x4431dc
xor esi, esi
mov edx, 0x20
nop
lea ecx, [edx + esi]
mov eax, edi
shr ecx, 1
shr eax, cl
test eax, eax
je 0x4431d1
mov esi, ecx
jmp 0x4431d3
mov edx, ecx
mov eax, edx
sub eax, esi
cmp eax, 1
ja 0x4431c0
mov esi, 1
mov ecx, edx
shl esi, cl
mov edx, dword [esp + 0x74]
cmp ebx, esi
je 0x44323a
xor eax, eax
mov edi, edx
mov ecx, ebx
rep stosd dword es:[edi], eax
lea eax, [ebx*4]
push edx
cmp eax, 0x10
jb 0x443209
call fcn.0046994f
jmp 0x44320e
call fcn.00469885
add esp, 4
mov ecx, esi
call fcn.00437f20
test esi, esi
jne 0x443220
xor edx, edx
jmp 0x44323a
lea ecx, [esi*4]
cmp ecx, 0x10
jb 0x443233
call fcn.00420850
jmp 0x443238
call fcn.004208d0
mov edx, eax
mov ebx, esi
mov dword [esp + 0x74], edx
mov esi, dword [esp + 0x54]
mov dword [esp + 0x70], ebx
mov ecx, dword [ebp + 0xc]
mov edx, dword [esp + 0x74]
cmp edx, ecx
je 0x443269
lea eax, [ebx*4]
push eax
push ecx
push edx
call fcn.00468f60
mov ebx, dword [esp + 0x7c]
add esp, 0xc
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x78], eax
test esi, esi
jne 0x443120
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x98]
mov edi, dword [esp + 0x28]
test ecx, ecx
jne 0x443293
test edx, edx
je 0x443088
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x18]
shl eax, cl
add eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esi]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
mov ecx, esi
push eax
lea eax, [esp + 0x6c]
push eax
call dword [edx + 0x20]
mov ebx, dword [esp + 0x70]
jmp 0x44308c
call fcn.00469885
mov dword [esp + 0x88], 0xffffffff
add esp, 4
mov ebp, dword [esp + 0x5c]
test ebp, ebp
je 0x443308
mov edi, dword [esp + 0x60]
mov esi, ebp
cmp ebp, edi
je 0x4432ff
lea ecx, [ecx]
mov eax, dword [esi]
mov ecx, esi
push 0
call dword [eax]
add esi, 0x14
cmp esi, edi
jne 0x4432f0
push ebp
call fcn.00468113
add esp, 4
mov eax, ebx
mov ecx, dword [esp + 0x7c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x74
ret 0x14