Function at 0x440db0
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
sub esp, 0xd4
push ebx
mov ebx, ecx
mov eax, dword [ebx + 0x228]
test eax, eax
mov dword [esp + 0x1c], ebx
jne 0x440df8
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0xe4]
mov edx, dword [esp + 0xe0]
push eax
mov eax, dword [esp + 0xe0]
push ecx
push edx
push eax
mov ecx, ebx
call fcn.0044a950
pop ebx
add esp, 0xd4
ret 0x10
push ebp
mov ebp, dword [esp + 0xe8]
push edi
mov edi, dword [ebp + 0x228]
test edi, edi
jne 0x440e1e
mov eax, dword [ebp + 0x188]
test eax, eax
jne 0x440e19
xor eax, eax
jmp 0x440e24
mov eax, dword [ebp + 0x78]
jmp 0x440e24
mov eax, dword [ebp + 0x1c0]
mov ecx, dword [esp + 0xf0]
imul eax, ecx
cdq
and edx, 0x3ff
add eax, edx
push esi
mov esi, eax
sar esi, 0xa
test edi, edi
jne 0x440e54
mov eax, dword [ebp + 0x188]
test eax, eax
jne 0x440e4f
xor eax, eax
jmp 0x440e5a
mov eax, dword [ebp + 0x7c]
jmp 0x440e5a
mov eax, dword [ebp + 0x1bc]
imul eax, ecx
cdq
and edx, 0x3ff
add eax, edx
mov ecx, eax
sar ecx, 0xa
test esi, esi
jne 0x440e81
pop esi
pop edi
pop ebp
mov eax, 1
pop ebx
add esp, 0xd4
ret 0x10
test ecx, ecx
jne 0x440e97
pop esi
pop edi
pop ebp
mov eax, 2
pop ebx
add esp, 0xd4
ret 0x10
test edi, edi
jne 0x440eae
mov eax, dword [ebp + 0x188]
test eax, eax
jne 0x440ea9
xor eax, eax
jmp 0x440eb4
mov eax, dword [ebp + 0x78]
jmp 0x440eb4
mov eax, dword [ebp + 0x1c0]
test edi, edi
jne 0x440ec7
mov edx, dword [ebp + 0x188]
test edx, edx
je 0x440ecd
mov edi, dword [ebp + 0x7c]
jmp 0x440ecd
mov edi, dword [ebp + 0x1bc]
shl eax, 0x10
xor edx, edx
div esi
xor edx, edx
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xd0], ecx
mov dword [esp + 0xe0], ecx
mov dword [esp + 0xa4], esi
mov dword [esp + 0xcc], esi
mov dword [esp + 0xdc], esi
mov dword [esp + 0x60], eax
mov eax, edi
shl eax, 0x10
div ecx
mov edi, dword [ebx + 0x1c0]
mov edx, dword [esp + 0xec]
lea ecx, [esp + 0x94]
mov dword [esp + 0x9c], edi
mov edi, dword [ebx + 0x1bc]
push ecx
mov ecx, ebx
mov dword [esp + 0x9c], edx
mov dword [esp + 0xa4], edi
mov dword [esp + 0xcc], edx
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0xec]
mov dword [esp + 0x98], eax
mov dword [esp + 0xc8], eax
xor eax, eax
mov dword [esp + 0xd8], eax
mov dword [esp + 0xdc], eax
call fcn.00449330
test eax, eax
jne 0x440f88
pop esi
pop edi
pop ebp
mov eax, 3
pop ebx
add esp, 0xd4
ret 0x10
mov eax, dword [esp + 0xb4]
imul eax, dword [esp + 0x60]
mov esi, dword [esp + 0xb8]
imul esi, dword [esp + 0x64]
mov ecx, ebx
mov dword [esp + 0x7c], eax
call fcn.0043c970
mov edi, eax
mov ecx, ebp
mov dword [esp + 0x34], edi
call fcn.0043c970
test edi, edi
mov dword [esp + 0x70], eax
je 0x440e6f
test eax, eax
je 0x440e85
mov ecx, ebx
call fcn.00401350
mov ecx, ebp
mov dword [esp + 0x50], eax
call fcn.00401350
mov ecx, dword [ebx + 0x228]
cmp ecx, 0x378
mov edx, dword [ebp + 0x6c]
mov dword [esp + 0x54], eax
mov dword [esp + 0x78], edx
ja 0x441a27
je 0x441765
sub ecx, 0x22b
je 0x4413f3
sub ecx, 0xa
jne 0x441cdb
mov ecx, dword [esp + 0xc0]
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0xb0]
add ecx, eax
cmp eax, ecx
mov dword [esp + 0x38], eax
mov dword [esp + 0x34], ecx
jge 0x441cdb
mov ebp, dword [esp + 0x50]
mov edx, dword [esp + 0xbc]
imul ebp, eax
mov ecx, dword [esp + 0xac]
add edx, ecx
add ebp, edi
mov dword [esp + 0x6c], edx
mov dword [esp + 0x4c], esi
mov dword [esp + 0x5c], ebp
jmp 0x441070
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0xf0]
shr eax, 0x10
mov edi, eax
imul edi, dword [esp + 0x54]
add edi, edx
push eax
add ecx, 0x58
mov dword [esp + 0x28], edi
call fcn.004012d0
mov edx, dword [esp + 0x38]
mov esi, eax
push edx
lea ecx, [ebx + 0x58]
mov dword [esp + 0x40], esi
call fcn.004012d0
mov ecx, dword [esp + 0xac]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x4c]
shr eax, 8
mov byte [esp + 0x12], al
cmp ecx, dword [esp + 0x6c]
mov dword [esp + 0x18], ecx
jge 0x4413c1
mov eax, dword [esp + 0x78]
lea edx, [esi + eax]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x20], edx
jmp 0x4410f0
mov esi, dword [esp + 0x3c]
jmp 0x4410f0
mov eax, edx
shr eax, 8
mov byte [esp + 0x10], al
shr edx, 0x10
mov al, byte [edx + esi]
mov byte [esp + 0x13], al
mov al, byte [esi + edx + 1]
mov esi, dword [esp + 0x44]
mov byte [esp + 0x11], al
mov al, byte [esi + edx]
movzx esi, byte [esi + edx + 1]
mov dword [esp + 0x2c], esi
movzx esi, al
movzx eax, byte [esp + 0x11]
mov dword [esp + 0x1c], eax
movzx eax, byte [esp + 0x13]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x1c]
add eax, esi
mov dword [esp + 0x30], esi
add eax, dword [esp + 0x2c]
add eax, dword [esp + 0x14]
je 0x4413a2
movzx ecx, word [ebp + ecx*2]
mov eax, ecx
and eax, 0xf800
mov dword [esp + 0x74], eax
mov eax, ecx
and ecx, 0x1f
mov dword [esp + 0x8c], ecx
movzx ecx, word [edi + edx*2]
and eax, 0x7e0
mov esi, ecx
mov ebx, ecx
and ecx, 0x1f
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x88], eax
lea eax, [edx + ecx]
movzx ecx, word [edi + eax*2]
lea eax, [edi + eax*2]
mov ebp, ecx
mov dword [esp + 0x80], eax
mov eax, ecx
and ecx, 0x1f
mov dword [esp + 0x84], ecx
movzx ecx, word [edi + edx*2 + 2]
movzx edi, byte [esp + 0x10]
and esi, 0xf800
mov edx, ecx
and ebx, 0x7e0
and eax, 0x7e0
and edx, 0xf800
sub edx, esi
imul edx, edi
and ebp, 0xf800
inc esi
imul esi, esi, 0xff
add edx, esi
mov esi, ecx
and esi, 0x7e0
sub esi, ebx
imul esi, edi
sar edx, 8
inc ebx
imul ebx, ebx, 0xff
and ecx, 0x1f
add esi, ebx
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x58]
sub ecx, eax
imul ecx, edi
sar esi, 8
inc eax
imul eax, eax, 0xff
add ecx, eax
mov eax, dword [esp + 0x1c]
sar ecx, 8
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x14]
sub eax, ecx
imul eax, edi
inc ecx
imul ecx, ecx, 0xff
add eax, ecx
movzx ecx, byte [esp + 0x12]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x30]
sub ebx, ecx
imul ebx, edi
sar eax, 8
inc ecx
imul ecx, ecx, 0xff
add ebx, ecx
sar ebx, 8
movzx ebx, bl
movzx eax, al
sub ebx, eax
imul ebx, dword [esp + 0x48]
inc eax
imul eax, eax, 0xff
add ebx, eax
sar ebx, 8
mov eax, dword [esp + 0x80]
movzx ecx, word [eax + 2]
movzx eax, bl
mov dword [esp + 0x14], eax
mov eax, ecx
and eax, 0xf800
sub eax, ebp
imul eax, edi
inc ebp
imul ebp, ebp, 0xff
add eax, ebp
sar eax, 8
sub eax, edx
imul eax, dword [esp + 0x48]
inc edx
imul edx, edx, 0xff
add eax, edx
sar eax, 8
mov edx, eax
mov eax, dword [esp + 0x74]
sub edx, eax
imul edx, dword [esp + 0x14]
inc eax
imul eax, eax, 0xff
add edx, eax
mov eax, dword [esp + 0x90]
mov ebp, ecx
and ebp, 0x7e0
sub ebp, eax
imul ebp, edi
sar edx, 8
and edx, 0xf800
inc eax
imul eax, eax, 0xff
add ebp, eax
sar ebp, 8
sub ebp, esi
imul ebp, dword [esp + 0x48]
mov eax, dword [esp + 0x88]
inc esi
imul esi, esi, 0xff
add ebp, esi
mov esi, dword [esp + 0x14]
sar ebp, 8
sub ebp, eax
imul ebp, esi
inc eax
imul eax, eax, 0xff
and ecx, 0x1f
add ebp, eax
mov eax, dword [esp + 0x84]
sub ecx, eax
imul ecx, edi
sar ebp, 8
and ebp, 0x7e0
or edx, ebp
inc eax
imul eax, eax, 0xff
add ecx, eax
mov eax, dword [esp + 0x58]
sar ecx, 8
sub ecx, eax
imul ecx, dword [esp + 0x48]
inc eax
imul eax, eax, 0xff
add ecx, eax
mov eax, dword [esp + 0x8c]
sar ecx, 8
mov ebp, dword [esp + 0x5c]
sub ecx, eax
mov edi, dword [esp + 0x68]
imul ecx, esi
inc eax
imul eax, eax, 0xff
add ecx, eax
sar ecx, 8
and ecx, 0x1f
or edx, ecx
mov ecx, dword [esp + 0x18]
mov word [ebp + ecx*2], dx
mov al, byte [ecx + edi]
movzx edx, al
add edx, esi
cmp edx, 0xff
jle 0x441395
mov byte [ecx + edi], 0xff
jmp 0x44139a
add bl, al
mov byte [ecx + edi], bl
mov ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
mov esi, dword [esp + 0x60]
mov eax, dword [esp + 0x6c]
inc ecx
add edx, esi
cmp ecx, eax
mov dword [esp + 0x18], ecx
mov dword [esp + 0x20], edx
jl 0x4410e4
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x50]
add edx, ecx
mov ecx, dword [esp + 0x34]
inc eax
add ebp, esi
cmp eax, ecx
mov dword [esp + 0x38], eax
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x4c], edx
jl 0x441070
jmp 0x441cdb
mov ecx, dword [esp + 0xb0]
cdq
sub eax, edx
mov edx, dword [esp + 0xc0]
sar eax, 1
mov dword [esp + 0x68], eax
lea eax, [edx + ecx]
cmp ecx, eax
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x88], eax
jge 0x441cdb
mov edi, dword [esp + 0xac]
mov eax, dword [esp + 0xbc]
add eax, edi
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x50]
imul eax, ecx
mov ecx, dword [esp + 0x34]
mov ebp, esi
add eax, ecx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jmp 0x441460
mov ebp, dword [esp + 0x1c]
mov edi, dword [esp + 0xac]
jmp 0x441460
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x70]
mov ecx, ebp
shr ecx, 0x10
imul eax, ecx
push ecx
mov ecx, dword [esp + 0xf4]
add eax, edx
add ecx, 0x58
mov dword [esp + 0x3c], eax
call fcn.004012d0
mov ecx, dword [esp + 0x2c]
mov esi, eax
push ecx
lea ecx, [ebx + 0x58]
mov dword [esp + 0x34], esi
call fcn.004012d0
mov dword [esp + 0x84], eax
mov eax, ebp
shr eax, 8
mov byte [esp + 0x6c], al
cmp edi, dword [esp + 0x3c]
mov ebp, edi
mov dword [esp + 0x40], ebp
jge 0x44172c
mov edi, dword [esp + 0x7c]
mov dword [esp + 0x44], edi
mov eax, edi
shr eax, 8
shr edi, 0x10
mov byte [esp + 0x5c], al
mov al, byte [edi + esi]
test al, al
mov byte [esp + 0x48], al
je 0x44170d
mov edx, dword [esp + 0x78]
lea eax, [esi + edx]
xor ecx, ecx
mov cl, byte [eax + edi + 1]
xor edx, edx
mov dl, byte [eax + edi]
push 0x493900
xor eax, eax
mov al, byte [edi + esi + 1]
push ecx
mov ecx, dword [esp + 0x50]
push edx
mov edx, dword [esp + 0x78]
push eax
mov eax, dword [esp + 0x6c]
push ecx
push edx
push eax
lea ecx, [esp + 0x64]
push ecx
mov ecx, ebx
call fcn.0043c610
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x38]
movzx ebx, byte [esp + 0x6c]
lea eax, [edi + edx]
movzx edx, word [ecx + eax*2]
lea eax, [ecx + eax*2]
movzx ecx, word [eax + 2]
mov eax, dword [esp + 0x38]
movzx eax, word [eax + edi*2]
movzx esi, byte [esp + 0x5c]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x38]
movzx eax, word [eax + edi*2 + 2]
mov edi, 0xff
sub edi, ebx
movzx ebx, byte [esp + 0x48]
mov dword [esp + 0x4c], ebx
mov ebx, dword [esp + 0x14]
movzx ebx, word [ebx + ebp*2]
mov ebp, dword [esp + 0x4c]
mov dword [esp + 0x24], ebx
mov ebx, 0xff
sub ebx, ebp
mov ebp, dword [esp + 0x58]
mov dword [esp + 0x74], ebx
mov dword [esp + 0x20], edx
and ebp, 0x3e0
mov edx, 0xff
sub edx, esi
mov ebx, eax
imul ebp, edx
and ebx, 0x3e0
imul ebx, esi
add ebx, ebp
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x80], edi
shr ebx, 8
imul ebx, edi
mov edi, ecx
and edi, 0x3e0
imul edi, esi
and ebp, 0x3e0
imul ebp, edx
add edi, ebp
shr edi, 8
imul edi, dword [esp + 0x18]
add ebx, edi
mov edi, dword [esp + 0x24]
shr ebx, 8
imul ebx, dword [esp + 0x4c]
and edi, 0x3e0
imul edi, dword [esp + 0x74]
add ebx, edi
shr ebx, 8
mov edi, ecx
and ebx, 0x3e0
mov dword [esp + 0x8c], esi
and edi, 0x1f
mov ebp, dword [esp + 0x20]
imul edi, esi
and ebp, 0x1f
imul ebp, edx
add edi, ebp
mov ebp, eax
and ebp, 0x1f
imul ebp, esi
mov esi, dword [esp + 0x58]
and esi, 0x1f
imul esi, edx
add ebp, esi
mov esi, dword [esp + 0x24]
shr edi, 8
imul edi, dword [esp + 0x18]
shr ebp, 8
imul ebp, dword [esp + 0x80]
and esi, 0x1f
add edi, ebp
shr edi, 8
imul edi, dword [esp + 0x4c]
mov dword [esp + 0x34], ebx
mov ebx, dword [esp + 0x74]
imul esi, ebx
add edi, esi
mov esi, dword [esp + 0x34]
and eax, 0x7c00
shr edi, 8
and edi, 0x1f
or esi, edi
mov edi, dword [esp + 0x8c]
mov dword [esp + 0x34], esi
imul eax, edi
mov esi, dword [esp + 0x58]
and esi, 0x7c00
imul esi, edx
add eax, esi
mov esi, dword [esp + 0x20]
and ecx, 0x7c00
imul ecx, edi
and esi, 0x7c00
imul esi, edx
mov edx, dword [esp + 0x4c]
add ecx, esi
shr eax, 8
imul eax, dword [esp + 0x80]
shr ecx, 8
imul ecx, dword [esp + 0x18]
add eax, ecx
mov ecx, dword [esp + 0x24]
mov ebp, dword [esp + 0x40]
shr eax, 8
and ecx, 0x7c00
imul eax, edx
imul ecx, ebx
mov ebx, dword [esp + 0x28]
add eax, ecx
mov ecx, dword [esp + 0x34]
shr eax, 8
and eax, 0x7c00
or ecx, eax
mov eax, dword [esp + 0x14]
mov word [eax + ebp*2], cx
mov eax, dword [esp + 0x84]
mov cl, byte [eax + ebp]
movzx esi, cl
add esi, edx
cmp esi, 0xff
mov esi, dword [esp + 0x30]
jle 0x441706
mov byte [eax + ebp], 0xff
jmp 0x44170d
add cl, byte [esp + 0x48]
mov byte [eax + ebp], cl
mov edi, dword [esp + 0x44]
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x3c]
inc ebp
add edi, ecx
cmp ebp, eax
mov dword [esp + 0x40], ebp
mov dword [esp + 0x44], edi
jl 0x4414c1
mov ecx, dword [esp + 0x50]
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x64]
add edi, ecx
mov ecx, dword [esp + 0x88]
inc eax
add esi, edx
cmp eax, ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x14], edi
mov dword [esp + 0x1c], esi
jl 0x44144d
jmp 0x441cdb
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xc0]
add ecx, eax
cmp eax, ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x68], ecx
jge 0x441cdb
mov ebp, dword [esp + 0xac]
mov ecx, dword [esp + 0xbc]
mov edx, dword [esp + 0xf0]
add ecx, ebp
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x50]
imul ecx, eax
add edx, 0x58
add ecx, edi
mov dword [esp + 0x38], edx
mov dword [esp + 0x30], esi
mov dword [esp + 0x20], ecx
jmp 0x4417c0
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x38]
mov eax, esi
shr eax, 0x10
mov edi, eax
imul edi, dword [esp + 0x54]
push eax
add edi, edx
call fcn.004012d0
mov edx, dword [esp + 0x18]
push edx
lea ecx, [ebx + 0x58]
mov dword [esp + 0x40], eax
call fcn.004012d0
mov dword [esp + 0x2c], eax
mov eax, esi
shr eax, 8
mov byte [esp + 0x28], al
cmp ebp, dword [esp + 0x40]
mov dword [esp + 0x14], ebp
jge 0x4419f5
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x7c]
lea edx, [ecx + ebp*2]
lea eax, [edx + ebp + 2]
mov dword [esp + 0x44], esi
mov dword [esp + 0x24], eax
nop
mov edx, dword [esp + 0x3c]
mov ecx, esi
mov eax, esi
shr eax, 0x10
shr ecx, 8
mov byte [esp + 0x1c], cl
cmp byte [eax + edx], 0
mov dword [esp + 0x34], eax
lea esi, [eax + eax*2]
je 0x4419bc
mov eax, dword [esp + 0x54]
lea ebp, [edi + eax]
xor ecx, ecx
mov cl, byte [esi + ebp + 3]
push 0x493900
xor edx, edx
mov dl, byte [esi + ebp]
xor eax, eax
mov al, byte [esi + edi + 3]
push ecx
xor ecx, ecx
mov cl, byte [esi + edi]
push edx
mov edx, dword [esp + 0x34]
push eax
mov eax, dword [esp + 0x2c]
push ecx
push edx
push eax
lea ecx, [esp + 0x2c]
push ecx
mov ecx, ebx
call fcn.0043c610
xor edx, edx
mov dl, byte [esi + ebp + 4]
push 0x493900
xor eax, eax
mov al, byte [esi + ebp + 1]
xor ecx, ecx
mov cl, byte [esi + edi + 4]
push edx
xor edx, edx
mov dl, byte [esi + edi + 1]
push eax
mov eax, dword [esp + 0x34]
push ecx
mov ecx, dword [esp + 0x2c]
push edx
push eax
push ecx
lea edx, [esp + 0x2f]
push edx
mov ecx, ebx
call fcn.0043c610
xor eax, eax
mov al, byte [esi + ebp + 5]
push 0x493900
xor ecx, ecx
mov cl, byte [esi + ebp + 2]
mov ebp, dword [esp + 0x20]
xor edx, edx
mov dl, byte [esi + edi + 5]
push eax
xor eax, eax
mov al, byte [esi + edi + 2]
push ecx
mov ecx, dword [esp + 0x34]
push edx
lea edx, [esp + 0x21]
push eax
push ecx
push ebp
push edx
mov ecx, ebx
call fcn.0043c610
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x78]
mov esi, dword [esp + 0x34]
add eax, ecx
movzx ecx, byte [esi + ecx]
xor edx, edx
mov dl, byte [esi + eax + 1]
movzx eax, byte [esi + eax]
push 0x493900
push edx
push eax
push ecx
push ecx
mov ecx, dword [esp + 0x3c]
push ecx
push ebp
lea edx, [esp + 0x2e]
push edx
mov ecx, ebx
call fcn.0043c610
mov esi, dword [esp + 0x24]
movzx ecx, byte [esi - 2]
mov dl, byte [esp + 0x12]
movzx ebp, byte [esp + 0x10]
shl ecx, 8
movzx eax, dl
mov cl, byte [ecx + eax + 0x4b3908]
shl ebp, 8
add cl, byte [eax + ebp + 0x4a3908]
movzx ebp, byte [esp + 0x13]
mov byte [esi - 2], cl
movzx ecx, byte [esi - 1]
shl ecx, 8
mov cl, byte [ecx + eax + 0x4b3908]
shl ebp, 8
add cl, byte [eax + ebp + 0x4a3908]
movzx ebp, byte [esp + 0x11]
mov byte [esi - 1], cl
movzx ecx, byte [esi]
shl ecx, 8
mov cl, byte [ecx + eax + 0x4b3908]
shl ebp, 8
add cl, byte [eax + ebp + 0x4a3908]
mov byte [esi], cl
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x14]
mov cl, byte [ecx + esi]
movzx esi, cl
add esi, eax
cmp esi, 0xff
mov eax, dword [esp + 0x2c]
jle 0x4419b3
mov edx, dword [esp + 0x14]
mov byte [edx + eax], 0xff
jmp 0x4419bc
add cl, dl
mov edx, dword [esp + 0x14]
mov byte [edx + eax], cl
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x40]
add esi, 3
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x44]
inc eax
add esi, edx
cmp eax, ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x44], esi
jl 0x441820
mov ebp, dword [esp + 0xac]
mov esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x50]
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x64]
add edi, ecx
mov ecx, dword [esp + 0x68]
inc eax
add esi, edx
cmp eax, ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], edi
mov dword [esp + 0x30], esi
jl 0x4417c0
jmp 0x441cdb
cmp ecx, 0x22b8
jne 0x441cdb
mov eax, dword [esp + 0xb0]
mov edx, dword [esp + 0xc0]
lea ecx, [edx + eax]
cmp eax, ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x34], ecx
jge 0x441cdb
mov ecx, dword [esp + 0xf0]
mov ebp, dword [esp + 0xac]
mov edx, dword [esp + 0xbc]
add ecx, 0x58
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x50]
imul ecx, eax
add edx, ebp
add ecx, edi
mov dword [esp + 0x40], edx
mov dword [esp + 0x30], esi
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x70]
mov eax, esi
shr eax, 0x10
mov edi, eax
imul edi, dword [esp + 0x54]
add edi, ecx
mov ecx, dword [esp + 0x38]
push eax
call fcn.004012d0
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x18]
push eax
lea ecx, [ebx + 0x58]
call fcn.004012d0
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x40]
mov ecx, esi
shr ecx, 8
cmp ebp, eax
mov byte [esp + 0x28], cl
mov dword [esp + 0x14], ebp
jge 0x441cae
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x7c]
lea ecx, [edx + ebp*4 + 2]
mov dword [esp + 0x44], eax
mov dword [esp + 0x24], ecx
mov edx, dword [esp + 0x3c]
mov esi, eax
shr eax, 8
shr esi, 0x10
mov byte [esp + 0x1c], al
cmp byte [esi + edx], 0
je 0x441c75
mov eax, dword [esp + 0x54]
lea ebp, [edi + eax]
xor ecx, ecx
mov cl, byte [ebp + esi*4 + 4]
push 0x493900
xor edx, edx
mov dl, byte [ebp + esi*4]
xor eax, eax
mov al, byte [edi + esi*4 + 4]
push ecx
xor ecx, ecx
mov cl, byte [edi + esi*4]
push edx
mov edx, dword [esp + 0x34]
push eax
mov eax, dword [esp + 0x2c]
push ecx
push edx
push eax
lea ecx, [esp + 0x2c]
push ecx
mov ecx, ebx
call fcn.0043c610
xor edx, edx
mov dl, byte [ebp + esi*4 + 5]
push 0x493900
xor eax, eax
mov al, byte [ebp + esi*4 + 1]
xor ecx, ecx
mov cl, byte [edi + esi*4 + 5]
push edx
xor edx, edx
mov dl, byte [edi + esi*4 + 1]
push eax
mov eax, dword [esp + 0x34]
push ecx
mov ecx, dword [esp + 0x2c]
push edx
push eax
push ecx
lea edx, [esp + 0x2f]
push edx
mov ecx, ebx
call fcn.0043c610
xor eax, eax
mov al, byte [ebp + esi*4 + 6]
push 0x493900
xor ecx, ecx
mov cl, byte [ebp + esi*4 + 2]
mov ebp, dword [esp + 0x20]
xor edx, edx
mov dl, byte [edi + esi*4 + 6]
push eax
xor eax, eax
mov al, byte [edi + esi*4 + 2]
push ecx
mov ecx, dword [esp + 0x34]
push edx
lea edx, [esp + 0x21]
push eax
push ecx
push ebp
push edx
mov ecx, ebx
call fcn.0043c610
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x78]
add eax, ecx
movzx ecx, byte [esi + ecx]
xor edx, edx
mov dl, byte [eax + esi + 1]
movzx eax, byte [eax + esi]
push 0x493900
push edx
push eax
push ecx
push ecx
mov ecx, dword [esp + 0x3c]
push ecx
push ebp
lea edx, [esp + 0x2e]
push edx
mov ecx, ebx
call fcn.0043c610
mov esi, dword [esp + 0x24]
movzx ecx, byte [esi - 2]
mov dl, byte [esp + 0x12]
movzx ebp, byte [esp + 0x10]
shl ecx, 8
movzx eax, dl
mov cl, byte [ecx + eax + 0x4b3908]
shl ebp, 8
add cl, byte [eax + ebp + 0x4a3908]
movzx ebp, byte [esi - 1]
mov byte [esi - 2], cl
movzx ecx, byte [esp + 0x13]
shl ecx, 8
mov cl, byte [ecx + eax + 0x4a3908]
shl ebp, 8
add cl, byte [eax + ebp + 0x4b3908]
movzx ebp, byte [esp + 0x11]
mov byte [esi - 1], cl
movzx ecx, byte [esi]
shl ecx, 8
mov cl, byte [ecx + eax + 0x4b3908]
shl ebp, 8
add cl, byte [eax + ebp + 0x4a3908]
mov byte [esi], cl
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x14]
mov cl, byte [ecx + esi]
movzx esi, cl
add esi, eax
cmp esi, 0xff
mov eax, dword [esp + 0x2c]
jle 0x441c6c
mov edx, dword [esp + 0x14]
mov byte [edx + eax], 0xff
jmp 0x441c75
add cl, dl
mov edx, dword [esp + 0x14]
mov byte [edx + eax], cl
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x24]
mov eax, dword [esp + 0x44]
mov esi, dword [esp + 0x60]
mov edx, dword [esp + 0x40]
inc ecx
add ebp, 4
add eax, esi
cmp ecx, edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x24], ebp
mov dword [esp + 0x44], eax
jl 0x441ae5
mov ebp, dword [esp + 0xac]
mov esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x50]
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x64]
add edi, ecx
mov ecx, dword [esp + 0x34]
inc eax
add esi, edx
cmp eax, ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], edi
mov dword [esp + 0x30], esi
jl 0x441a87
mov ecx, ebx
call fcn.0043c9e0
mov ecx, dword [esp + 0xf0]
call fcn.0043c9e0
pop esi
pop edi
pop ebp
xor eax, eax
pop ebx
add esp, 0xd4
ret 0x10