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

Disassembly:
sub esp, 0x50
mov edx, dword [eax + 0x80]
push ebx
mov ebx, dword [eax + 4]
push ebp
push esi
mov esi, ecx
mov ecx, dword [eax + 0x20]
mov ebp, dword [eax + 8]
mov dword [esp + 0x20], ecx
mov ecx, dword [eax + 0x8c]
mov dword [esp + 0x10], edx
xor edx, edx
test ecx, ecx
sete dl
push edi
mov edi, 1
mov dword [esp + 0x18], ebx
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x1c], esi
add edx, ecx
mov ecx, dword [eax + 0x78]
mov dword [esp + 0x4c], edx
mov edx, esi
shl edi, cl
mov ecx, dword [eax + 0x10]
sub edx, ebx
add edx, dword [esp + 0x6c]
mov dword [esp + 0x34], ecx
mov ecx, edx
sub ecx, dword [esp + 0x34]
cmp ecx, edi
jbe 0x44a6b6
sub edx, edi
jmp 0x44a6ba
mov edx, dword [esp + 0x34]
mov ecx, dword [eax + 0x14]
mov dword [esp + 0x44], ecx
test ecx, ecx
je 0x44a6c9
mov edx, dword [esp + 0x34]
lea ecx, [edx + ebp]
mov dword [esp + 0x54], ecx
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x30], edx
mov dword [esp + 0x38], ecx
cmp ecx, edx
jae 0x44a6e7
mov ecx, edx
mov dword [esp + 0x28], edx
jmp 0x44a6eb
mov dword [esp + 0x28], ecx
lea edi, [ecx + ebx]
mov dword [esp + 0x34], edi
lea edi, [ecx + ebp]
mov dword [esp + 0x40], edi
mov edi, dword [esp + 0x6c]
add edi, esi
lea ebp, [edi - 8]
mov dword [esp + 0x5c], ebp
mov ebp, dword [esp + 0x68]
mov ebp, dword [ebp]
mov dword [esp + 0x20], ebp
mov ebp, dword [esp + 0x68]
mov ebp, dword [ebp + 4]
mov dword [esp + 0x10], edi
mov dword [esp + 0x2c], ebp
cmp ecx, edx
jne 0x44adb7
mov ebp, dword [eax + 0x8c]
mov edx, dword [eax + 0x80]
xor ecx, ecx
test ebp, ebp
sete cl
mov dword [esp + 0x14], edx
mov dword [esp + 0x1c], esi
lea edx, [ecx + ebp + 1]
mov ecx, dword [eax + 0x78]
mov eax, dword [esp + 0x38]
mov dword [esp + 0x5c], edx
mov edx, esi
sub edx, ebx
add edx, dword [esp + 0x6c]
mov ebp, 1
shl ebp, cl
mov ecx, edx
sub ecx, eax
cmp ecx, ebp
jbe 0x44a76d
sub edx, ebp
jmp 0x44a76f
mov edx, eax
cmp dword [esp + 0x44], 0
je 0x44a77c
mov dword [esp + 0x40], eax
jmp 0x44a782
mov eax, edx
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x2c]
add eax, ebx
add edi, 0xfffffff8
mov dword [esp + 0x20], edx
xor edx, edx
cmp esi, eax
sete dl
mov dword [esp + 0x54], eax
mov dword [esp + 0x6c], edi
mov dword [esp + 0x28], ecx
mov dword [esp + 0x30], 0
add esi, edx
mov edx, dword [esp + 0x38]
mov eax, esi
sub eax, ebx
mov ebx, eax
sub ebx, edx
lea edi, [esi + 1]
mov dword [esp + 0x34], edi
cmp ebx, ebp
jbe 0x44a7cd
mov ebx, eax
sub ebx, ebp
jmp 0x44a7cf
mov ebx, edx
xor ebp, ebp
cmp dword [esp + 0x44], ebp
jne 0x44a7d9
mov edx, ebx
sub eax, edx
cmp ecx, eax
jbe 0x44a7e7
mov dword [esp + 0x30], ecx
mov dword [esp + 0x28], ebp
mov ecx, dword [esp + 0x20]
cmp ecx, eax
jbe 0x44a7f7
mov dword [esp + 0x30], ecx
mov dword [esp + 0x20], ebp
cmp edi, dword [esp + 0x6c]
jae 0x44ad86
mov eax, dword [esp + 0x70]
add eax, 0xfffffffb
mov dword [esp + 0x6c], eax
lea esp, [esp]
mov eax, dword [esp + 0x6c]
lea ecx, [esi + 2]
mov dword [esp + 0x44], ecx
cmp eax, 3
ja case.default.0x44a820
jmp dword [eax*4 + 0x44b4e0]
mov ebx, dword [esp + 0x14]
push ebx
mov eax, esi
call fcn.0041a300
add esp, 4
mov ebp, eax
jmp 0x44a88c
mov ebx, dword [esp + 0x14]
push ebx
mov eax, esi
call fcn.0041a330
add esp, 4
mov ebp, eax
jmp 0x44a88c
mov ebx, dword [esp + 0x14]
push ebx
mov eax, esi
call fcn.00436d00
add esp, 4
mov ebp, eax
jmp 0x44a88c
mov ebx, dword [esp + 0x14]
push ebx
mov eax, esi
call fcn.0043cc40
add esp, 4
mov ebp, eax
mov dword [esp + 0x2c], eax
jmp 0x44a890
mov ebp, dword [esi]
mov ebx, dword [esp + 0x14]
imul ebp, ebp, 0x9e3779b1
mov ecx, 0x20
sub ecx, ebx
shr ebp, cl
mov dword [esp + 0x2c], ebp
mov eax, dword [esp + 0x6c]
mov edx, dword [esi]
mov dword [esp + 0x3c], edx
cmp eax, 3
ja case.default.0x44a89f
jmp dword [eax*4 + 0x44b4f0]
push ebx
mov eax, edi
call fcn.0041a300
add esp, 4
jmp 0x44a8eb
push ebx
mov eax, edi
call fcn.0041a330
add esp, 4
jmp 0x44a8eb
push ebx
mov eax, edi
call fcn.00436d00
add esp, 4
jmp 0x44a8eb
push ebx
mov eax, edi
call fcn.0043cc40
add esp, 4
jmp 0x44a8eb
mov eax, dword [edi]
imul eax, eax, 0x9e3779b1
mov ecx, 0x20
sub ecx, ebx
shr eax, cl
mov ecx, dword [edi]
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x4c], ecx
mov ecx, dword [edx + ebp*4]
mov ebp, dword [edx + eax*4]
mov edx, dword [esp + 0x44]
sub edx, dword [esp + 0x20]
mov dword [esp + 0x38], ebp
add ebp, ebx
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x2c]
mov edi, esi
sub edi, ebx
mov dword [esp + 0x48], ecx
add ecx, ebx
mov ebx, dword [esp + 0x24]
mov dword [ebx + ebp*4], edi
mov dword [esp + 0x58], edi
mov edi, dword [esp + 0x34]
mov ebp, edi
sub ebp, dword [esp + 0x18]
mov dword [ebx + eax*4], ebp
mov eax, dword [edx]
mov ebp, dword [esp + 0x44]
xor ebx, ebx
cmp eax, dword [ebp]
sete bl
xor eax, eax
cmp eax, dword [esp + 0x20]
sbb eax, eax
neg eax
test eax, ebx
je 0x44a97c
mov cl, byte [ebp - 1]
xor eax, eax
cmp cl, byte [edx - 1]
mov dword [esp + 0x44], 0
sete al
mov edi, eax
sub ebp, edi
sub edx, edi
mov esi, ebp
mov ebp, dword [esp + 0x1c]
mov ecx, edx
add edi, 4
jmp 0x44a9fc
mov eax, dword [esp + 0x40]
cmp dword [esp + 0x48], eax
jbe 0x44a98e
mov edx, dword [esp + 0x3c]
cmp dword [ecx], edx
je 0x44a9aa
cmp dword [esp + 0x38], eax
jbe 0x44ad62
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
cmp dword [ecx], eax
jne 0x44ad62
mov esi, edi
mov edx, dword [esp + 0x20]
mov ebp, dword [esp + 0x1c]
mov eax, esi
sub eax, ecx
mov dword [esp + 0x20], eax
add eax, 2
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x54]
cmp eax, ecx
mov dword [esp + 0x28], edx
sbb edx, edx
neg edx
cmp ebp, esi
sbb ebx, ebx
neg ebx
mov edi, 4
test ebx, edx
je 0x44a9fc
mov edi, edi
movzx edx, byte [esi - 1]
cmp dl, byte [ecx - 1]
jne 0x44a9fc
dec ecx
dec esi
inc edi
cmp eax, ecx
sbb edx, edx
neg edx
cmp ebp, esi
sbb ebx, ebx
neg ebx
test ebx, edx
jne 0x44a9e0
mov ebx, dword [esp + 0x10]
lea edx, [edi + ecx]
lea ecx, [edi + esi]
call fcn.00445ec0
add edi, eax
mov eax, esi
sub eax, ebp
mov dword [esp + 0x2c], eax
add eax, ebp
mov ebp, dword [esp + 0x64]
lea ecx, [ebx - 0x20]
cmp eax, ecx
ja 0x44aac7
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx]
mov eax, dword [ebp + 0xc]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
mov edx, dword [ecx + 0xc]
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0x2c]
cmp edx, 0x10
jbe 0x44aade
mov eax, dword [ebp + 0xc]
add eax, 0x10
add edx, 0xfffffff0
add ecx, 0x10
cmp edx, 0x10
lea ebx, [eax + edx]
mov dword [esp + 0x50], ebx
mov ebx, dword [ecx]
mov dword [eax], ebx
mov ebx, dword [ecx + 4]
mov dword [eax + 4], ebx
mov ebx, dword [ecx + 8]
mov dword [eax + 8], ebx
mov ebx, dword [ecx + 0xc]
mov dword [eax + 0xc], ebx
jle 0x44aada
mov edx, dword [esp + 0x50]
add eax, 0x10
add ecx, 0x10
mov ebx, dword [ecx]
mov dword [eax], ebx
mov ebx, dword [ecx + 4]
mov dword [eax + 4], ebx
mov ebx, dword [ecx + 8]
mov dword [eax + 8], ebx
mov ebx, dword [ecx + 0xc]
mov dword [eax + 0xc], ebx
mov ebx, dword [ecx + 0x10]
add ecx, 0x10
add eax, 0x10
mov dword [eax], ebx
mov ebx, dword [ecx + 4]
mov dword [eax + 4], ebx
mov ebx, dword [ecx + 8]
mov dword [eax + 8], ebx
mov ebx, dword [ecx + 0xc]
mov dword [eax + 0xc], ebx
add eax, 0x10
add ecx, 0x10
cmp eax, edx
jb 0x44aa88
jmp 0x44aada
mov edx, dword [esp + 0x1c]
push eax
mov eax, dword [ebp + 0xc]
add ebx, 0xffffffe0
call fcn.00445e30
add esp, 4
mov edx, dword [esp + 0x2c]
add dword [ebp + 0xc], edx
cmp edx, 0xffff
jbe 0x44aafc
mov eax, dword [ebp + 4]
sub eax, dword [ebp]
mov dword [ebp + 0x24], 1
sar eax, 3
mov dword [ebp + 0x28], eax
mov ecx, dword [ebp + 4]
mov word [ecx + 4], dx
mov edx, dword [esp + 0x44]
mov eax, dword [ebp + 4]
inc edx
mov dword [eax], edx
lea eax, [edi - 3]
cmp eax, 0xffff
jbe 0x44ab2a
mov ecx, dword [ebp + 4]
sub ecx, dword [ebp]
mov dword [ebp + 0x24], 2
sar ecx, 3
mov dword [ebp + 0x28], ecx
mov edx, dword [ebp + 4]
mov word [edx + 6], ax
mov eax, dword [esp + 0x10]
add dword [ebp + 4], 8
add esi, edi
add eax, 0xfffffff8
mov dword [esp + 0x1c], esi
cmp esi, eax
ja 0x44ad5d
mov ecx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x58]
mov eax, dword [esp + 0x18]
lea eax, [ebx + eax + 2]
cmp ecx, 3
ja case.default.0x44ab5f
jmp dword [ecx*4 + 0x44b500]
mov edi, dword [esp + 0x14]
push edi
call fcn.0041a300
add esp, 4
jmp 0x44abb7
mov edi, dword [esp + 0x14]
push edi
call fcn.0041a330
add esp, 4
jmp 0x44abb7
mov edi, dword [esp + 0x14]
push edi
call fcn.00436d00
add esp, 4
jmp 0x44abb7
mov edi, dword [esp + 0x14]
push edi
call fcn.0043cc40
add esp, 4
jmp 0x44abb7
mov eax, dword [eax]
mov edi, dword [esp + 0x14]
imul eax, eax, 0x9e3779b1
mov ecx, 0x20
sub ecx, edi
shr eax, cl
lea ecx, [ebx + 2]
mov ebx, dword [esp + 0x24]
mov dword [ebx + eax*4], ecx
mov ecx, dword [esp + 0x6c]
lea eax, [esi - 2]
cmp ecx, 3
ja case.default.0x44abcd
jmp dword [ecx*4 + 0x44b510]
push edi
call fcn.0041a300
add esp, 4
jmp 0x44ac11
push edi
call fcn.0041a330
add esp, 4
jmp 0x44ac11
push edi
call fcn.00436d00
add esp, 4
jmp 0x44ac11
push edi
call fcn.0043cc40
add esp, 4
jmp 0x44ac11
mov eax, dword [eax]
imul eax, eax, 0x9e3779b1
mov ecx, 0x20
sub ecx, edi
shr eax, cl
mov edx, esi
sub edx, dword [esp + 0x18]
sub edx, 2
cmp dword [esp + 0x28], 0
mov dword [ebx + eax*4], edx
jbe 0x44ad5d
mov ecx, dword [esi]
mov eax, esi
sub eax, dword [esp + 0x28]
cmp ecx, dword [eax]
jne 0x44ad5d
mov ebx, dword [esp + 0x10]
lea edx, [eax + 4]
lea ecx, [esi + 4]
call fcn.00445ec0
mov edx, dword [esp + 0x20]
mov edi, eax
mov eax, dword [esp + 0x28]
add edi, 4
cmp dword [esp + 0x6c], 3
mov dword [esp + 0x28], edx
mov dword [esp + 0x20], eax
ja case.default.0x44ac67
mov eax, dword [esp + 0x6c]
jmp dword [eax*4 + 0x44b520]
mov ecx, dword [esp + 0x14]
push ecx
mov eax, esi
call fcn.0041a300
add esp, 4
jmp 0x44acc5
mov edx, dword [esp + 0x14]
push edx
mov eax, esi
call fcn.0041a330
add esp, 4
jmp 0x44acc5
mov eax, dword [esp + 0x14]
push eax
mov eax, esi
call fcn.00436d00
add esp, 4
jmp 0x44acc5
mov ecx, dword [esp + 0x14]
push ecx
mov eax, esi
call fcn.0043cc40
add esp, 4
jmp 0x44acc5
mov eax, dword [esi]
imul eax, eax, 0x9e3779b1
mov ecx, 0x20
sub ecx, dword [esp + 0x14]
shr eax, cl
mov ecx, dword [esp + 0x24]
mov edx, esi
sub edx, dword [esp + 0x18]
add esi, edi
mov dword [ecx + eax*4], edx
mov eax, dword [esp + 0x1c]
mov ecx, ebx
add ecx, 0xffffffe0
add edi, 0xfffffffd
cmp eax, ecx
ja 0x44acff
mov edx, dword [eax]
mov ecx, dword [ebp + 0xc]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
jmp 0x44ad12
mov edx, dword [esp + 0x1c]
mov eax, dword [ebp + 0xc]
push edx
add ebx, 0xffffffe0
call fcn.00445e30
add esp, 4
mov ecx, dword [ebp + 4]
xor edx, edx
mov word [ecx + 4], dx
mov eax, dword [ebp + 4]
mov dword [eax], 1
cmp edi, 0xffff
jbe 0x44ad3f
mov ecx, dword [ebp + 4]
sub ecx, dword [ebp]
mov dword [ebp + 0x24], 2
sar ecx, 3
mov dword [ebp + 0x28], ecx
mov edx, dword [ebp + 4]
mov eax, dword [esp + 0x10]
mov word [edx + 6], di
add dword [ebp + 4], 8
add eax, 0xfffffff8
mov dword [esp + 0x1c], esi
cmp esi, eax
jbe 0x44ac28
lea edi, [esi + 1]
jmp 0x44ad73
mov eax, esi
sub eax, dword [esp + 0x1c]
shr eax, 7
add eax, dword [esp + 0x5c]
add esi, eax
add edi, eax
mov eax, dword [esp + 0x10]
add eax, 0xfffffff8
mov dword [esp + 0x34], edi
cmp edi, eax
jb 0x44a810
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x44ad92
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x68]
mov dword [ecx], eax
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x44ada4
mov eax, dword [esp + 0x30]
pop edi
pop esi
mov dword [ecx + 4], eax
mov eax, dword [esp + 8]
sub eax, dword [esp + 0x14]
pop ebp
pop ebx
add esp, 0x50
ret
cmp esi, dword [esp + 0x5c]
jae 0x44b4bd
mov eax, dword [esp + 0x70]
add eax, 0xfffffffb
mov dword [esp + 0x6c], eax
lea esp, [esp]
mov eax, dword [esp + 0x6c]
cmp eax, 3
ja case.default.0x44add9
jmp dword [eax*4 + 0x44b530]
mov ecx, dword [esp + 0x14]
push ecx
mov eax, esi
call fcn.0041a300
add esp, 4
jmp 0x44ae37
mov edx, dword [esp + 0x14]
push edx
mov eax, esi
call fcn.0041a330
add esp, 4
jmp 0x44ae37
mov eax, dword [esp + 0x14]
push eax
mov eax, esi
call fcn.00436d00
add esp, 4
jmp 0x44ae37
mov ecx, dword [esp + 0x14]
push ecx
mov eax, esi
call fcn.0043cc40
add esp, 4
jmp 0x44ae37
mov eax, dword [esi]
imul eax, eax, 0x9e3779b1
mov ecx, 0x20
sub ecx, dword [esp + 0x14]
shr eax, cl
mov edx, dword [esp + 0x24]
mov ebx, dword [edx + eax*4]
mov ebp, dword [esp + 0x28]
mov edi, dword [esp + 0x3c]
cmp ebx, ebp
jb 0x44ae4e
mov edi, dword [esp + 0x18]
mov edx, esi
sub edx, dword [esp + 0x18]
add edi, ebx
mov ecx, edx
sub ecx, dword [esp + 0x20]
mov dword [esp + 0x50], edx
inc ecx
cmp ecx, ebp
mov ebp, dword [esp + 0x3c]
jb 0x44ae6d
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x44], ebp
mov ebp, dword [esp + 0x24]
mov dword [ebp + eax*4], edx
mov eax, dword [esp + 0x28]
sub eax, ecx
dec eax
cmp eax, 3
sbb eax, eax
inc eax
cmp dword [esp + 0x30], ecx
sbb ebp, ebp
neg ebp
test ebp, eax
je 0x44b009
mov eax, dword [esp + 0x44]
mov ebp, dword [eax + ecx]
cmp ebp, dword [esi + 1]
jne 0x44b009
mov edx, dword [esp + 0x40]
cmp ecx, dword [esp + 0x28]
jb 0x44aeb4
mov edx, dword [esp + 0x10]
lea edi, [eax + ecx + 4]
lea ebp, [esi + 5]
mov eax, ebp
sub eax, edi
mov ecx, edx
add eax, ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x38], edx
cmp eax, ecx
jb 0x44aed1
mov eax, ecx
mov ebx, eax
mov edx, edi
mov ecx, ebp
call fcn.00445ec0
add edi, eax
mov dword [esp + 0x44], eax
cmp edi, dword [esp + 0x38]
je 0x44aeea
jmp 0x44af00
mov edi, dword [esp + 0x44]
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x34]
lea ecx, [edi + ebp]
call fcn.00445ec0
add eax, edi
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x64]
add eax, 4
inc esi
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x1c]
mov edi, esi
sub edi, eax
add ebx, 0xffffffe0
add eax, edi
cmp eax, ebx
ja 0x44afc2
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx]
mov eax, dword [ebp + 0xc]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
mov edx, dword [ecx + 0xc]
mov dword [eax + 0xc], edx
cmp edi, 0x10
jbe 0x44afd2
mov eax, dword [ebp + 0xc]
add eax, 0x10
lea edx, [edi - 0x10]
add ecx, 0x10
cmp edx, 0x10
lea ebx, [eax + edx]
mov dword [esp + 0x5c], ebx
mov ebx, dword [ecx]
mov dword [eax], ebx
mov ebx, dword [ecx + 4]
mov dword [eax + 4], ebx
mov ebx, dword [ecx + 8]
mov dword [eax + 8], ebx
mov ebx, dword [ecx + 0xc]
mov dword [eax + 0xc], ebx
jle 0x44afd2
mov edx, dword [esp + 0x5c]
add eax, 0x10
add ecx, 0x10
mov ebx, dword [ecx]
mov dword [eax], ebx
mov ebx, dword [ecx + 4]
mov dword [eax + 4], ebx
mov ebx, dword [ecx + 8]
mov dword [eax + 8], ebx
mov ebx, dword [ecx + 0xc]
mov dword [eax + 0xc], ebx
mov ebx, dword [ecx + 0x10]
add ecx, 0x10
add eax, 0x10
mov dword [eax], ebx
mov ebx, dword [ecx + 4]
mov dword [eax + 4], ebx
mov ebx, dword [ecx + 8]
mov dword [eax + 8], ebx
mov ebx, dword [ecx + 0xc]
mov dword [eax + 0xc], ebx
add eax, 0x10
add ecx, 0x10
cmp eax, edx
jb 0x44af83
jmp 0x44afd2
mov edx, dword [esp + 0x1c]
push eax
mov eax, dword [ebp + 0xc]
call fcn.00445e30
add esp, 4
add dword [ebp + 0xc], edi
cmp edi, 0xffff
jbe 0x44aff0
mov eax, dword [ebp + 4]
sub eax, dword [ebp]
mov dword [ebp + 0x24], 1
sar eax, 3
mov dword [ebp + 0x28], eax
mov ecx, dword [ebp + 4]
mov word [ecx + 4], di
mov edx, dword [ebp + 4]
mov ecx, dword [esp + 0x58]
mov dword [edx], 1
jmp 0x44b1db
cmp ebx, dword [esp + 0x30]
jb 0x44b49f
mov eax, dword [edi]
cmp eax, dword [esi]
jne 0x44b49f
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x40]
cmp ebx, eax
jb 0x44b02d
mov ecx, dword [esp + 0x10]
cmp ebx, eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x44], ecx
jb 0x44b03d
mov eax, dword [esp + 0x34]
mov dword [esp + 0x2c], eax
lea ebp, [edi + 4]
lea eax, [esi + 4]
sub eax, ebp
add eax, ecx
mov ecx, dword [esp + 0x10]
sub edx, ebx
mov dword [esp + 0x48], edx
cmp eax, ecx
jb 0x44b05b
mov eax, ecx
mov ebx, eax
mov edx, ebp
lea ecx, [esi + 4]
call fcn.00445ec0
mov dword [esp + 0x38], eax
add eax, ebp
cmp eax, dword [esp + 0x44]
je 0x44b079
mov eax, dword [esp + 0x38]
jmp 0x44b090
mov ebp, dword [esp + 0x38]
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x34]
lea ecx, [esi + ebp + 4]
call fcn.00445ec0
add eax, ebp
mov ebp, dword [esp + 0x2c]
cmp ebp, edi
sbb edx, edx
lea ecx, [eax + 4]
mov eax, dword [esp + 0x1c]
neg edx
cmp eax, esi
sbb ebx, ebx
neg ebx
mov dword [esp + 0x38], ecx
test ebx, edx
je 0x44b0d0
nop
movzx edx, byte [esi - 1]
cmp dl, byte [edi - 1]
jne 0x44b0cc
dec edi
dec esi
inc ecx
cmp ebp, edi
sbb edx, edx
neg edx
cmp eax, esi
sbb ebx, ebx
neg ebx
test ebx, edx
jne 0x44b0b0
mov dword [esp + 0x38], ecx
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x48]
mov ebp, dword [esp + 0x64]
mov edi, esi
sub edi, eax
add ebx, 0xffffffe0
add eax, edi
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x20], edx
cmp eax, ebx
ja 0x44b196
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx]
mov eax, dword [ebp + 0xc]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
mov edx, dword [ecx + 0xc]
mov dword [eax + 0xc], edx
cmp edi, 0x10
jbe 0x44b1a6
mov eax, dword [ebp + 0xc]
add eax, 0x10
lea edx, [edi - 0x10]
add ecx, 0x10
cmp edx, 0x10
lea ebx, [eax + edx]
mov dword [esp + 0x5c], ebx
mov ebx, dword [ecx]
mov dword [eax], ebx
mov ebx, dword [ecx + 4]
mov dword [eax + 4], ebx
mov ebx, dword [ecx + 8]
mov dword [eax + 8], ebx
mov ebx, dword [ecx + 0xc]
mov dword [eax + 0xc], ebx
jle 0x44b1a6
mov edx, dword [esp + 0x5c]
add eax, 0x10
add ecx, 0x10
mov ebx, dword [ecx]
mov dword [eax], ebx
mov ebx, dword [ecx + 4]
mov dword [eax + 4], ebx
mov ebx, dword [ecx + 8]
mov dword [eax + 8], ebx
mov ebx, dword [ecx + 0xc]
mov dword [eax + 0xc], ebx
mov ebx, dword [ecx + 0x10]
add ecx, 0x10
add eax, 0x10
mov dword [eax], ebx
mov ebx, dword [ecx + 4]
mov dword [eax + 4], ebx
mov ebx, dword [ecx + 8]
mov dword [eax + 8], ebx
mov ebx, dword [ecx + 0xc]
mov dword [eax + 0xc], ebx
add eax, 0x10
add ecx, 0x10
cmp eax, edx
jb 0x44b157
jmp 0x44b1a6
mov edx, dword [esp + 0x1c]
push eax
mov eax, dword [ebp + 0xc]
call fcn.00445e30
add esp, 4
add dword [ebp + 0xc], edi
cmp edi, 0xffff
jbe 0x44b1c4
mov eax, dword [ebp + 4]
sub eax, dword [ebp]
mov dword [ebp + 0x24], 1
sar eax, 3
mov dword [ebp + 0x28], eax
mov ecx, dword [ebp + 4]
mov edx, dword [esp + 0x48]
mov word [ecx + 4], di
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x38]
add edx, 3
mov dword [eax], edx
lea eax, [ecx - 3]
cmp eax, 0xffff
jbe 0x44b1f8
mov edx, dword [ebp + 4]
sub edx, dword [ebp]
mov dword [ebp + 0x24], 2
sar edx, 3
mov dword [ebp + 0x28], edx
mov edx, dword [ebp + 4]
mov word [edx + 6], ax
mov eax, dword [esp + 0x10]
add dword [ebp + 4], 8
add esi, ecx
add eax, 0xfffffff8
mov dword [esp + 0x1c], esi
cmp esi, eax
ja 0x44b4ae
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x50]
mov eax, dword [esp + 0x18]
lea eax, [eax + ebp + 2]
cmp ebx, 3
ja case.default.0x44b22d
jmp dword [ebx*4 + 0x44b540]
mov edi, dword [esp + 0x14]
push edi
call fcn.0041a300
add esp, 4
jmp 0x44b285
mov edi, dword [esp + 0x14]
push edi
call fcn.0041a330
add esp, 4
jmp 0x44b285
mov edi, dword [esp + 0x14]
push edi
call fcn.00436d00
add esp, 4
jmp 0x44b285
mov edi, dword [esp + 0x14]
push edi
call fcn.0043cc40
add esp, 4
jmp 0x44b285
mov eax, dword [eax]
mov edi, dword [esp + 0x14]
imul eax, eax, 0x9e3779b1
mov ecx, 0x20
sub ecx, edi
shr eax, cl
lea ecx, [ebp + 2]
mov ebp, dword [esp + 0x24]
mov dword [ebp + eax*4], ecx
lea eax, [esi - 2]
cmp ebx, 3
ja case.default.0x44b298
jmp dword [ebx*4 + 0x44b550]
push edi
call fcn.0041a300
add esp, 4
jmp 0x44b2dc
push edi
call fcn.0041a330
add esp, 4
jmp 0x44b2dc
push edi
call fcn.00436d00
add esp, 4
jmp 0x44b2dc
push edi
call fcn.0043cc40
add esp, 4
jmp 0x44b2dc
mov eax, dword [eax]
imul eax, eax, 0x9e3779b1
mov ecx, 0x20
sub ecx, edi
shr eax, cl
mov edx, esi
sub edx, dword [esp + 0x18]
sub edx, 2
mov dword [ebp + eax*4], edx
lea esp, [esp]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x28]
mov eax, esi
sub eax, ecx
mov dword [esp + 0x5c], eax
sub eax, dword [esp + 0x2c]
cmp eax, edx
jae 0x44b30c
mov ecx, dword [esp + 0x3c]
sub edx, eax
dec edx
cmp edx, 3
sbb edx, edx
inc edx
cmp dword [esp + 0x30], eax
lea ebp, [eax + ecx]
sbb ecx, ecx
neg ecx
test ecx, edx
je 0x44b4ae
mov edx, dword [ebp]
cmp edx, dword [esi]
jne 0x44b4ae
cmp eax, dword [esp + 0x28]
jae 0x44b343
mov eax, dword [esp + 0x40]
mov dword [esp + 0x38], eax
jmp 0x44b34b
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x38], ecx
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x10]
add ebp, 4
lea eax, [esi + 4]
sub eax, ebp
add eax, edx
cmp eax, ecx
jb 0x44b363
mov eax, ecx
mov ebx, eax
mov edx, ebp
lea ecx, [esi + 4]
call fcn.00445ec0
mov edi, eax
add ebp, edi
cmp ebp, dword [esp + 0x38]
je 0x44b37b
jmp 0x44b38e
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x34]
lea ecx, [edi + esi + 4]
call fcn.00445ec0
add eax, edi
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x64]
lea ebp, [eax + 4]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x58], ebp
add ebx, 0xffffffe0
add ebp, 0xfffffffd
mov dword [esp + 0x20], eax
mov eax, dword [edi + 0xc]
mov dword [esp + 0x2c], ecx
cmp esi, ebx
ja 0x44b3d2
mov edx, dword [esi]
mov dword [eax], edx
mov ecx, dword [esi + 4]
mov dword [eax + 4], ecx
mov edx, dword [esi + 8]
mov dword [eax + 8], edx
mov ecx, dword [esi + 0xc]
mov dword [eax + 0xc], ecx
jmp 0x44b3dd
push esi
mov edx, esi
call fcn.00445e30
add esp, 4
mov edx, dword [edi + 4]
xor eax, eax
mov word [edx + 4], ax
mov ecx, dword [edi + 4]
mov dword [ecx], 1
cmp ebp, 0xffff
jbe 0x44b409
mov edx, dword [edi + 4]
sub edx, dword [edi]
mov dword [edi + 0x24], 2
sar edx, 3
mov dword [edi + 0x28], edx
mov eax, dword [edi + 4]
mov word [eax + 6], bp
mov eax, dword [esp + 0x6c]
add dword [edi + 4], 8
cmp eax, 3
ja case.default.0x44b41d
jmp dword [eax*4 + 0x44b560]
mov ecx, dword [esp + 0x14]
push ecx
mov eax, esi
call fcn.0041a300
add esp, 4
jmp 0x44b47b
mov edx, dword [esp + 0x14]
push edx
mov eax, esi
call fcn.0041a330
add esp, 4
jmp 0x44b47b
mov eax, dword [esp + 0x14]
push eax
mov eax, esi
call fcn.00436d00
add esp, 4
jmp 0x44b47b
mov ecx, dword [esp + 0x14]
push ecx
mov eax, esi
call fcn.0043cc40
add esp, 4
jmp 0x44b47b
mov eax, dword [esi]
imul eax, eax, 0x9e3779b1
mov ecx, 0x20
sub ecx, dword [esp + 0x14]
shr eax, cl
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x24]
add esi, dword [esp + 0x58]
mov dword [ecx + eax*4], edx
mov eax, dword [esp + 0x10]
add eax, 0xfffffff8
mov dword [esp + 0x1c], esi
cmp esi, eax
jbe 0x44b2f0
jmp 0x44b4ae
mov edx, esi
sub edx, dword [esp + 0x1c]
sar edx, 8
add edx, dword [esp + 0x4c]
add esi, edx
mov eax, dword [esp + 0x10]
add eax, 0xfffffff8
cmp esi, eax
jb 0x44add0
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x2c]
pop edi
pop esi
mov dword [eax], ecx
mov dword [eax + 4], edx
mov eax, dword [esp + 8]
sub eax, dword [esp + 0x14]
pop ebp
pop ebx
add esp, 0x50
ret