Function at 0x45ac30
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 0x45ac96
sub edx, edi
jmp 0x45ac9a
mov edx, dword [esp + 0x34]
mov ecx, dword [eax + 0x14]
mov dword [esp + 0x44], ecx
test ecx, ecx
je 0x45aca9
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 0x45acc7
mov ecx, edx
mov dword [esp + 0x28], edx
jmp 0x45accb
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 0x45b397
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 0x45ad4d
sub edx, ebp
jmp 0x45ad4f
mov edx, eax
cmp dword [esp + 0x44], 0
je 0x45ad5c
mov dword [esp + 0x40], eax
jmp 0x45ad62
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 0x45adad
mov ebx, eax
sub ebx, ebp
jmp 0x45adaf
mov ebx, edx
xor ebp, ebp
cmp dword [esp + 0x44], ebp
jne 0x45adb9
mov edx, ebx
sub eax, edx
cmp ecx, eax
jbe 0x45adc7
mov dword [esp + 0x30], ecx
mov dword [esp + 0x28], ebp
mov ecx, dword [esp + 0x20]
cmp ecx, eax
jbe 0x45add7
mov dword [esp + 0x30], ecx
mov dword [esp + 0x20], ebp
cmp edi, dword [esp + 0x6c]
jae 0x45b366
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.0x45ae00
jmp dword [eax*4 + 0x45bac0]
mov ebx, dword [esp + 0x14]
push ebx
mov eax, esi
call fcn.00447410
add esp, 4
mov ebp, eax
jmp 0x45ae6c
mov ebx, dword [esp + 0x14]
push ebx
mov eax, esi
call fcn.0044d380
add esp, 4
mov ebp, eax
jmp 0x45ae6c
mov ebx, dword [esp + 0x14]
push ebx
mov eax, esi
call fcn.00457680
add esp, 4
mov ebp, eax
jmp 0x45ae6c
mov ebx, dword [esp + 0x14]
push ebx
mov eax, esi
call fcn.00447440
add esp, 4
mov ebp, eax
mov dword [esp + 0x2c], eax
jmp 0x45ae70
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.0x45ae7f
jmp dword [eax*4 + 0x45bad0]
push ebx
mov eax, edi
call fcn.00447410
add esp, 4
jmp 0x45aecb
push ebx
mov eax, edi
call fcn.0044d380
add esp, 4
jmp 0x45aecb
push ebx
mov eax, edi
call fcn.00457680
add esp, 4
jmp 0x45aecb
push ebx
mov eax, edi
call fcn.00447440
add esp, 4
jmp 0x45aecb
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 0x45af5c
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 0x45afdc
mov eax, dword [esp + 0x40]
cmp dword [esp + 0x48], eax
jbe 0x45af6e
mov edx, dword [esp + 0x3c]
cmp dword [ecx], edx
je 0x45af8a
cmp dword [esp + 0x38], eax
jbe 0x45b342
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
cmp dword [ecx], eax
jne 0x45b342
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 0x45afdc
mov edi, edi
movzx edx, byte [esi - 1]
cmp dl, byte [ecx - 1]
jne 0x45afdc
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 0x45afc0
mov ebx, dword [esp + 0x10]
lea edx, [edi + ecx]
lea ecx, [edi + esi]
call fcn.0041eb30
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 0x45b0a7
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 0x45b0be
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 0x45b0ba
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 0x45b068
jmp 0x45b0ba
mov edx, dword [esp + 0x1c]
push eax
mov eax, dword [ebp + 0xc]
add ebx, 0xffffffe0
call fcn.00447380
add esp, 4
mov edx, dword [esp + 0x2c]
add dword [ebp + 0xc], edx
cmp edx, 0xffff
jbe 0x45b0dc
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 0x45b10a
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 0x45b33d
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.0x45b13f
jmp dword [ecx*4 + 0x45bae0]
mov edi, dword [esp + 0x14]
push edi
call fcn.00447410
add esp, 4
jmp 0x45b197
mov edi, dword [esp + 0x14]
push edi
call fcn.0044d380
add esp, 4
jmp 0x45b197
mov edi, dword [esp + 0x14]
push edi
call fcn.00457680
add esp, 4
jmp 0x45b197
mov edi, dword [esp + 0x14]
push edi
call fcn.00447440
add esp, 4
jmp 0x45b197
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.0x45b1ad
jmp dword [ecx*4 + 0x45baf0]
push edi
call fcn.00447410
add esp, 4
jmp 0x45b1f1
push edi
call fcn.0044d380
add esp, 4
jmp 0x45b1f1
push edi
call fcn.00457680
add esp, 4
jmp 0x45b1f1
push edi
call fcn.00447440
add esp, 4
jmp 0x45b1f1
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 0x45b33d
mov ecx, dword [esi]
mov eax, esi
sub eax, dword [esp + 0x28]
cmp ecx, dword [eax]
jne 0x45b33d
mov ebx, dword [esp + 0x10]
lea edx, [eax + 4]
lea ecx, [esi + 4]
call fcn.0041eb30
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.0x45b247
mov eax, dword [esp + 0x6c]
jmp dword [eax*4 + 0x45bb00]
mov ecx, dword [esp + 0x14]
push ecx
mov eax, esi
call fcn.00447410
add esp, 4
jmp 0x45b2a5
mov edx, dword [esp + 0x14]
push edx
mov eax, esi
call fcn.0044d380
add esp, 4
jmp 0x45b2a5
mov eax, dword [esp + 0x14]
push eax
mov eax, esi
call fcn.00457680
add esp, 4
jmp 0x45b2a5
mov ecx, dword [esp + 0x14]
push ecx
mov eax, esi
call fcn.00447440
add esp, 4
jmp 0x45b2a5
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 0x45b2df
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 0x45b2f2
mov edx, dword [esp + 0x1c]
mov eax, dword [ebp + 0xc]
push edx
add ebx, 0xffffffe0
call fcn.00447380
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 0x45b31f
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 0x45b208
lea edi, [esi + 1]
jmp 0x45b353
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 0x45adf0
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x45b372
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x68]
mov dword [ecx], eax
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x45b384
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 0x45ba9d
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.0x45b3b9
jmp dword [eax*4 + 0x45bb10]
mov ecx, dword [esp + 0x14]
push ecx
mov eax, esi
call fcn.00447410
add esp, 4
jmp 0x45b417
mov edx, dword [esp + 0x14]
push edx
mov eax, esi
call fcn.0044d380
add esp, 4
jmp 0x45b417
mov eax, dword [esp + 0x14]
push eax
mov eax, esi
call fcn.00457680
add esp, 4
jmp 0x45b417
mov ecx, dword [esp + 0x14]
push ecx
mov eax, esi
call fcn.00447440
add esp, 4
jmp 0x45b417
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 0x45b42e
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 0x45b44d
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 0x45b5e9
mov eax, dword [esp + 0x44]
mov ebp, dword [eax + ecx]
cmp ebp, dword [esi + 1]
jne 0x45b5e9
mov edx, dword [esp + 0x40]
cmp ecx, dword [esp + 0x28]
jb 0x45b494
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 0x45b4b1
mov eax, ecx
mov ebx, eax
mov edx, edi
mov ecx, ebp
call fcn.0041eb30
add edi, eax
mov dword [esp + 0x44], eax
cmp edi, dword [esp + 0x38]
je 0x45b4ca
jmp 0x45b4e0
mov edi, dword [esp + 0x44]
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x34]
lea ecx, [edi + ebp]
call fcn.0041eb30
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 0x45b5a2
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 0x45b5b2
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 0x45b5b2
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 0x45b563
jmp 0x45b5b2
mov edx, dword [esp + 0x1c]
push eax
mov eax, dword [ebp + 0xc]
call fcn.00447380
add esp, 4
add dword [ebp + 0xc], edi
cmp edi, 0xffff
jbe 0x45b5d0
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 0x45b7bb
cmp ebx, dword [esp + 0x30]
jb 0x45ba7f
mov eax, dword [edi]
cmp eax, dword [esi]
jne 0x45ba7f
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x40]
cmp ebx, eax
jb 0x45b60d
mov ecx, dword [esp + 0x10]
cmp ebx, eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x44], ecx
jb 0x45b61d
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 0x45b63b
mov eax, ecx
mov ebx, eax
mov edx, ebp
lea ecx, [esi + 4]
call fcn.0041eb30
mov dword [esp + 0x38], eax
add eax, ebp
cmp eax, dword [esp + 0x44]
je 0x45b659
mov eax, dword [esp + 0x38]
jmp 0x45b670
mov ebp, dword [esp + 0x38]
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x34]
lea ecx, [esi + ebp + 4]
call fcn.0041eb30
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 0x45b6b0
nop
movzx edx, byte [esi - 1]
cmp dl, byte [edi - 1]
jne 0x45b6ac
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 0x45b690
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 0x45b776
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 0x45b786
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 0x45b786
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 0x45b737
jmp 0x45b786
mov edx, dword [esp + 0x1c]
push eax
mov eax, dword [ebp + 0xc]
call fcn.00447380
add esp, 4
add dword [ebp + 0xc], edi
cmp edi, 0xffff
jbe 0x45b7a4
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 0x45b7d8
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 0x45ba8e
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.0x45b80d
jmp dword [ebx*4 + 0x45bb20]
mov edi, dword [esp + 0x14]
push edi
call fcn.00447410
add esp, 4
jmp 0x45b865
mov edi, dword [esp + 0x14]
push edi
call fcn.0044d380
add esp, 4
jmp 0x45b865
mov edi, dword [esp + 0x14]
push edi
call fcn.00457680
add esp, 4
jmp 0x45b865
mov edi, dword [esp + 0x14]
push edi
call fcn.00447440
add esp, 4
jmp 0x45b865
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.0x45b878
jmp dword [ebx*4 + 0x45bb30]
push edi
call fcn.00447410
add esp, 4
jmp 0x45b8bc
push edi
call fcn.0044d380
add esp, 4
jmp 0x45b8bc
push edi
call fcn.00457680
add esp, 4
jmp 0x45b8bc
push edi
call fcn.00447440
add esp, 4
jmp 0x45b8bc
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 0x45b8ec
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 0x45ba8e
mov edx, dword [ebp]
cmp edx, dword [esi]
jne 0x45ba8e
cmp eax, dword [esp + 0x28]
jae 0x45b923
mov eax, dword [esp + 0x40]
mov dword [esp + 0x38], eax
jmp 0x45b92b
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 0x45b943
mov eax, ecx
mov ebx, eax
mov edx, ebp
lea ecx, [esi + 4]
call fcn.0041eb30
mov edi, eax
add ebp, edi
cmp ebp, dword [esp + 0x38]
je 0x45b95b
jmp 0x45b96e
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x34]
lea ecx, [edi + esi + 4]
call fcn.0041eb30
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 0x45b9b2
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 0x45b9bd
push esi
mov edx, esi
call fcn.00447380
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 0x45b9e9
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.0x45b9fd
jmp dword [eax*4 + 0x45bb40]
mov ecx, dword [esp + 0x14]
push ecx
mov eax, esi
call fcn.00447410
add esp, 4
jmp 0x45ba5b
mov edx, dword [esp + 0x14]
push edx
mov eax, esi
call fcn.0044d380
add esp, 4
jmp 0x45ba5b
mov eax, dword [esp + 0x14]
push eax
mov eax, esi
call fcn.00457680
add esp, 4
jmp 0x45ba5b
mov ecx, dword [esp + 0x14]
push ecx
mov eax, esi
call fcn.00447440
add esp, 4
jmp 0x45ba5b
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 0x45b8d0
jmp 0x45ba8e
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 0x45b3b0
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