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

Disassembly:
push esi
push edi
push ebx
push ebp
sub esp, 0xb0
mov esi, dword [esp + 0xc8]
mov dword [esp + 0x64], esi
mov edi, dword [esp + 0xf4]
mov esi, dword [esi]
mov dword [esp + 0x9c], esi
mov esi, dword [esp + 0xdc]
mov ebp, dword [esp + 0xd8]
mov ecx, dword [esp + 0xe8]
mov esi, dword [esi]
mov dword [esp + 0xac], esi
mov dword [esp + 0x50], esi
mov esi, dword [edi + 0x10]
mov dword [esp + 0x5c], ebp
mov ebx, dword [esp + 0xc4]
mov ebp, dword [ebp]
mov dword [esp + 0x88], ecx
mov eax, dword [esp + 0xd4]
mov ecx, dword [esp + 0xec]
mov dword [esp + 0x54], edi
mov dword [esp + 0xa8], ebp
mov dword [esp + 0x4c], ebp
mov edx, dword [esp + 0xd0]
mov ebp, dword [esp + 0xcc]
mov edi, dword [edi + 0x14]
mov dword [esp + 0x8c], eax
mov dword [esp + 0x84], ecx
mov dword [esp + 0x7c], esi
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xf0]
movzx esi, word [esi*2 + 0x616cd4]
mov dword [esp + 0x68], ebx
mov ebx, dword [ebx]
mov dword [esp + 0x60], edx
mov dword [esp + 0x98], ebx
mov dword [esp + 0x78], edi
mov ebx, dword [ebp]
mov edx, dword [edx]
movzx edi, word [edi*2 + 0x616cd4]
mov dword [esp + 0x80], ecx
mov dword [esp + 0x74], esi
lea esi, [ecx + esi*2 + 2]
mov dword [esp + 0x58], eax
mov dword [esp + 0x90], ebx
mov dword [esp + 0x94], edx
mov dword [esp + 0x70], edi
mov dword [esp + 0x6c], esi
mov ecx, dword [esp + 0xdc]
cmp dword [eax], 2
je 0x45ffcd
mov dword [esp + 0x48], 0
mov dword [esp + 0xa4], ebp
mov dword [esp + 0xa0], ecx
mov ebp, dword [esp + 0xac]
mov esi, dword [esp + 0x9c]
cmp esi, 6
jle 0x45f9b7
cmp ebp, 8
jle 0x45f9b7
lea edi, [esp + 0x9c]
lea esi, [esp + 0x4c]
lea ebp, [esp + 0x50]
lea ebx, [esp + 0xe0]
lea ecx, [esp + 0x94]
lea edx, [esp + 0x90]
lea eax, [esp + 8]
push dword [esp + 0x6c]
push dword [esp + 0x84]
push dword [esp + 0x8c]
push dword [esp + 0x98]
push dword [esp + 0x98]
push eax
push dword [esp + 0x88]
push dword [esp + 0x90]
push dword [esp + 0x98]
push dword [esp + 0xa0]
push edx
push ecx
push ebx
push ebp
push esi
push edi
lea eax, [esp + 0xd8]
push eax
call fcn.00464630
add esp, 0x44
test eax, eax
je 0x45fe78
mov edx, eax
and eax, 0xf
mov edi, dword [esp + 8]
mov ebx, edi
add eax, 0xfffffffe
and edi, 0xf
sar edx, 0x10
shr ebx, 0x10
mov dword [esp + 0x44], edx
cmp eax, 4
mov dword [esp + 0x48], ebx
ja case.default.0x45f2e8
mov eax, dword [eax*4 + 0x616cf4]
jmp eax
mov ebp, dword [esp + 0x50]
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x44]
mov edi, ecx
cmp ecx, ebp
jle 0x45f311
sub dword [esp + 0x44], ebp
mov edi, ebp
test ebp, ebp
je 0x45fa17
mov esi, 5
jmp 0x45f316
mov esi, 1
mov ebx, dword [esp + 0xe0]
cmp ebx, dword [esp + 0x48]
jae 0x45f6f9
cmp dword [esp + 0x88], 0
je 0x45fc0e
mov ebp, ebx
xor ecx, ecx
mov edx, dword [esp + 0x48]
sub ebp, edx
add ebp, edi
cmovs ebp, ecx
mov ecx, edi
sub edx, dword [esp + 0x8c]
sub ecx, ebp
sub edx, ebx
mov dword [esp + 0x28], ebp
test edx, edx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x2c], edx
jle 0x45fafb
mov ebx, ecx
mov edx, ebx
mov ecx, dword [esp + 0x2c]
sub edx, ecx
xor ebp, ebp
test edx, edx
cmovle edx, ebp
mov dword [esp + 0x20], edx
mov edx, ecx
cmovle edx, ebx
test edx, edx
jle 0x45f49c
cmp edx, 6
jle 0x45f420
mov ebp, dword [esp + 0x84]
mov ebx, dword [esp + 0x88]
add ebx, ebp
sub ebx, dword [esp + 0x2c]
mov dword [esp + 0x18], ebx
cmp eax, ebx
jbe 0x45f3b6
mov ebx, eax
sub ebx, dword [esp + 0x18]
cmp edx, ebx
jle 0x45f3c6
cmp eax, dword [esp + 0x18]
jae 0x45f420
mov ebx, dword [esp + 0x18]
sub ebx, eax
cmp edx, ebx
jg 0x45f420
mov ebp, edx
shr ebp, 0x1f
add ebp, edx
sar ebp, 1
test ebp, ebp
jbe 0x45fabf
mov dword [esp + 0x10], edi
xor ebx, ebx
mov dword [esp + 0x14], edx
mov edi, dword [esp + 0x18]
movzx edx, byte [edi + ebx*2]
mov byte [eax + ebx*2], dl
movzx ecx, byte [edi + ebx*2 + 1]
mov byte [eax + ebx*2 + 1], cl
inc ebx
cmp ebx, ebp
jb 0x45f3e5
mov edi, dword [esp + 0x10]
lea ebx, [ebx + ebx + 1]
mov edx, dword [esp + 0x14]
lea ebp, [ebx - 1]
cmp edx, ebp
jbe 0x45f49c
mov ebp, dword [esp + 0x18]
movzx edx, byte [ebp + ebx - 1]
mov byte [ebx + eax - 1], dl
jmp 0x45f49c
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
sar ebx, 1
mov dword [esp + 0x1c], ebx
test ebx, ebx
jbe 0x45fac9
mov ecx, dword [esp + 0x84]
xor ebp, ebp
mov ebx, dword [esp + 0x88]
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], edx
mov edi, dword [esp + 0x1c]
add ebx, ecx
sub ebx, dword [esp + 0x2c]
movzx ecx, byte [ebx + ebp*2]
mov byte [eax + ebp*2], cl
movzx edx, byte [ebx + ebp*2 + 1]
mov byte [eax + ebp*2 + 1], dl
inc ebp
cmp ebp, edi
jb 0x45f457
mov edi, dword [esp + 0x10]
lea ebx, [ebp + ebp + 1]
mov edx, dword [esp + 0x14]
lea ebp, [ebx - 1]
cmp edx, ebp
jbe 0x45f49c
mov edx, dword [esp + 0x84]
mov ebp, dword [esp + 0x88]
add edx, ebp
sub edx, dword [esp + 0x2c]
movzx edx, byte [ebx + edx - 1]
mov byte [ebx + eax - 1], dl
cmp dword [esp + 0x20], 0
je 0x45f5ce
jle 0x45f5ce
cmp dword [esp + 0x20], 6
jle 0x45f55c
mov edx, dword [esp + 0x2c]
lea ebx, [edx + eax]
mov dword [esp + 4], ebx
cmp ebx, dword [esp + 0x88]
jbe 0x45f4db
mov edx, ebx
sub edx, dword [esp + 0x88]
cmp edx, dword [esp + 0x20]
jge 0x45f4f7
mov edx, ebx
cmp edx, dword [esp + 0x88]
jae 0x45f55c
mov edx, dword [esp + 0x88]
sub edx, dword [esp + 4]
cmp edx, dword [esp + 0x20]
jl 0x45f55c
mov eax, dword [esp + 0x20]
mov edx, eax
shr edx, 0x1f
add edx, eax
sar edx, 1
test edx, edx
jbe 0x45fad3
mov dword [esp + 0x10], edi
xor eax, eax
mov ebp, ebx
mov edi, dword [esp + 0x88]
movzx ecx, byte [edi + eax*2]
mov byte [ebp + eax*2], cl
movzx ebx, byte [edi + eax*2 + 1]
mov byte [ebp + eax*2 + 1], bl
inc eax
cmp eax, edx
jb 0x45f51b
mov edi, dword [esp + 0x10]
lea ebp, [eax + eax + 1]
lea eax, [ebp - 1]
cmp eax, dword [esp + 0x20]
jae 0x45f5ce
mov edx, dword [esp + 0x88]
mov ebx, dword [esp + 4]
movzx eax, byte [edx + ebp - 1]
mov byte [ebx + ebp - 1], al
jmp 0x45f5ce
mov edx, dword [esp + 0x20]
mov ebp, edx
shr ebp, 0x1f
add ebp, edx
sar ebp, 1
test ebp, ebp
jbe 0x45faf1
mov edx, dword [esp + 0x2c]
xor ebx, ebx
mov dword [esp + 0x10], edi
mov dword [esp + 0xa8], eax
mov edi, dword [esp + 0x88]
add edx, eax
movzx eax, byte [edi + ebx*2]
mov byte [edx + ebx*2], al
movzx ecx, byte [edi + ebx*2 + 1]
mov byte [edx + ebx*2 + 1], cl
inc ebx
cmp ebx, ebp
jb 0x45f58b
mov edi, dword [esp + 0x10]
lea edx, [ebx + ebx + 1]
mov eax, dword [esp + 0xa8]
lea ebx, [edx - 1]
cmp ebx, dword [esp + 0x20]
jae 0x45f5ce
mov ebp, dword [esp + 0x2c]
mov ebx, dword [esp + 0x88]
add ebp, eax
movzx eax, byte [edx + ebx - 1]
mov byte [edx + ebp - 1], al
mov eax, dword [esp + 0x4c]
mov ebx, dword [esp + 0xe0]
cmp dword [esp + 0x28], 0
jne 0x45f5e9
mov ebp, dword [esp + 0x50]
jmp 0x45f7c1
mov edx, eax
add dword [esp + 0x24], eax
sub edx, ebx
mov dword [esp + 0xc], edx
cmp dword [esp + 0x28], 0
jle 0x45f5e0
cmp dword [esp + 0x28], 6
jle 0x45f695
mov eax, dword [esp + 0x24]
cmp eax, dword [esp + 0xc]
jbe 0x45f61b
sub eax, dword [esp + 0xc]
cmp eax, dword [esp + 0x28]
jge 0x45f631
mov eax, dword [esp + 0x24]
cmp eax, dword [esp + 0xc]
jae 0x45f695
mov eax, edx
sub eax, dword [esp + 0x24]
cmp eax, dword [esp + 0x28]
jl 0x45f695
mov eax, dword [esp + 0x28]
mov edx, eax
shr edx, 0x1f
add edx, eax
sar edx, 1
test edx, edx
jbe 0x45fadd
mov dword [esp + 0x10], edi
xor eax, eax
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0xc]
movzx ecx, byte [edi + eax*2]
mov byte [ebp + eax*2], cl
movzx ebx, byte [edi + eax*2 + 1]
mov byte [ebp + eax*2 + 1], bl
inc eax
cmp eax, edx
jb 0x45f654
mov edi, dword [esp + 0x10]
lea ebp, [eax + eax + 1]
lea eax, [ebp - 1]
cmp eax, dword [esp + 0x28]
jae 0x45f7b2
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x24]
movzx eax, byte [edx + ebp - 1]
mov byte [ebx + ebp - 1], al
jmp 0x45f7b2
mov eax, dword [esp + 0x28]
mov edx, eax
shr edx, 0x1f
add edx, eax
sar edx, 1
test edx, edx
jbe 0x45fae7
mov dword [esp + 0x10], edi
xor eax, eax
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0xc]
movzx ecx, byte [edi + eax*2]
mov byte [ebp + eax*2], cl
movzx ebx, byte [edi + eax*2 + 1]
mov byte [ebp + eax*2 + 1], bl
inc eax
cmp eax, edx
jb 0x45f6b8
mov edi, dword [esp + 0x10]
lea ebx, [eax + eax + 1]
lea eax, [ebx - 1]
cmp eax, dword [esp + 0x28]
jae 0x45f7b2
mov edx, dword [esp + 0xc]
mov ebp, dword [esp + 0x24]
movzx eax, byte [ebx + edx - 1]
mov byte [ebx + ebp - 1], al
jmp 0x45f7b2
mov edx, eax
sub edx, dword [esp + 0x48]
test edi, edi
jle 0x45f7c1
cmp edi, 6
jle 0x45f76c
cmp eax, edx
jbe 0x45f718
mov ebx, eax
sub ebx, edx
cmp edi, ebx
jle 0x45f724
cmp edx, eax
jbe 0x45f76c
mov ebx, edx
sub ebx, eax
cmp edi, ebx
jg 0x45f76c
mov ecx, edi
shr ecx, 0x1f
add ecx, edi
sar ecx, 1
test ecx, ecx
jbe 0x45fc4f
mov dword [esp + 0x10], edi
xor ebp, ebp
mov edi, ecx
movzx ebx, byte [edx + ebp*2]
mov byte [eax + ebp*2], bl
movzx ecx, byte [edx + ebp*2 + 1]
mov byte [eax + ebp*2 + 1], cl
inc ebp
cmp ebp, edi
jb 0x45f73d
mov edi, dword [esp + 0x10]
lea ebp, [ebp + ebp + 1]
lea ebx, [ebp - 1]
cmp edi, ebx
jbe 0x45f7b2
movzx edx, byte [edx + ebp - 1]
mov byte [ebp + eax - 1], dl
jmp 0x45f7b2
mov ecx, edi
shr ecx, 0x1f
add ecx, edi
sar ecx, 1
test ecx, ecx
jbe 0x45fd2d
mov dword [esp + 0x10], edi
xor ebp, ebp
mov edi, ecx
movzx ebx, byte [edx + ebp*2]
mov byte [eax + ebp*2], bl
movzx ecx, byte [edx + ebp*2 + 1]
mov byte [eax + ebp*2 + 1], cl
inc ebp
cmp ebp, edi
jb 0x45f785
mov edi, dword [esp + 0x10]
lea ebp, [ebp + ebp + 1]
lea ebx, [ebp - 1]
cmp edi, ebx
jbe 0x45f7b2
movzx edx, byte [ebp + edx - 1]
mov byte [ebp + eax - 1], dl
mov eax, dword [esp + 0x4c]
mov ebp, dword [esp + 0x50]
mov ebx, dword [esp + 0xe0]
add ebx, edi
add eax, edi
sub ebp, edi
mov dword [esp + 0xe0], ebx
cmp esi, 5
je 0x45fcc3
mov dword [esp + 0x50], ebp
cmp esi, 1
mov dword [esp + 0x4c], eax
je 0x45f21d
test ebp, ebp
je 0x45fc59
mov edx, dword [esp + 0x44]
mov byte [eax], dl
mov ebp, dword [esp + 0x50]
dec ebp
inc dword [esp + 0x4c]
inc dword [esp + 0xe0]
mov dword [esp + 0x50], ebp
jmp 0x45f21d
mov ebp, dword [esp + 0x50]
mov esi, 4
mov eax, dword [esp + 0x4c]
mov ebx, dword [esp + 0x90]
mov edx, dword [esp + 0x94]
cmp edx, edi
jg 0x45fd47
mov ecx, dword [esp + 0x98]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x9c]
mov dword [esp + 0x30], ecx
mov ecx, edx
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], ebp
mov ebp, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
jmp 0x45f870
mov dword [esp + 0x94], ecx
mov dword [esp + 0x90], ebx
test ebp, ebp
jle 0x45fd37
movzx edx, byte [eax]
inc eax
shl edx, cl
add ecx, 8
or ebx, edx
dec ebp
mov dword [esp + 0x98], eax
cmp ecx, edi
mov dword [esp + 0x9c], ebp
jle 0x45f862
jmp 0x45fd37
mov ebp, dword [esp + 0x50]
mov esi, 3
mov eax, dword [esp + 0x4c]
mov ebx, dword [esp + 0x90]
mov edx, dword [esp + 0x94]
cmp edx, dword [esp + 0x78]
jg 0x45fdde
mov dword [esp + 0xa8], eax
mov eax, edx
mov ecx, dword [esp + 0x98]
mov edx, ecx
mov edi, dword [esp + 0x9c]
mov ecx, eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0xac], ebp
jmp 0x45f8f6
mov dword [esp + 0x94], ecx
mov dword [esp + 0x90], ebx
test edi, edi
jle 0x45fdce
movzx ebp, byte [edx]
inc edx
shl ebp, cl
add ecx, 8
or ebx, ebp
dec edi
mov dword [esp + 0x98], edx
cmp ecx, eax
mov dword [esp + 0x9c], edi
jle 0x45f8e8
jmp 0x45fdce
mov ebp, dword [esp + 0x50]
mov esi, 2
mov eax, dword [esp + 0x4c]
mov ebx, dword [esp + 0x90]
mov edx, dword [esp + 0x94]
cmp edx, edi
jg 0x45fe44
mov ecx, dword [esp + 0x98]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x9c]
mov dword [esp + 0x38], ecx
mov ecx, edx
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], ebp
mov eax, dword [esp + 0x38]
mov ebp, dword [esp + 0x3c]
jmp 0x45f982
mov dword [esp + 0x94], ecx
mov dword [esp + 0x90], ebx
test eax, eax
jle 0x45fe34
movzx edx, byte [ebp]
inc ebp
shl edx, cl
add ecx, 8
or ebx, edx
dec eax
mov dword [esp + 0x98], ebp
cmp ecx, edi
mov dword [esp + 0x9c], eax
jle 0x45f974
jmp 0x45fe34
mov ebp, dword [esp + 0x50]
jmp 0x45f21d
mov edx, dword [esp + 0x94]
mov ebx, dword [esp + 0x90]
cmp edx, dword [esp + 0x7c]
jg 0x45fecd
mov eax, dword [esp + 0x98]
mov ecx, edx
mov edi, dword [esp + 0x7c]
jmp 0x45f9ec
mov dword [esp + 0x94], ecx
mov dword [esp + 0x90], ebx
test esi, esi
jle 0x45fecb
movzx edx, byte [eax]
inc eax
shl edx, cl
add ecx, 8
or ebx, edx
dec esi
mov dword [esp + 0x98], eax
cmp ecx, edi
mov dword [esp + 0x9c], esi
jle 0x45f9de
jmp 0x45fecb
mov esi, dword [esp + 0x54]
mov dword [esp + 0xa8], eax
mov edi, dword [esp + 0x9c]
mov eax, dword [esp + 0x44]
mov dword [esp + 0xac], ebp
mov dword [esp], edi
mov dword [esi + 4], eax
mov eax, dword [esp + 0x48]
mov edi, ebp
mov dword [esi], 5
mov dword [esi + 8], eax
mov dword [esi + 0xc], edi
mov esi, dword [esp + 0x58]
mov ecx, dword [esp + 0xa0]
mov ebp, dword [esp + 0xa4]
mov ebx, dword [esp + 0x90]
mov edx, dword [esp + 0x94]
mov dword [esi], 2
mov dword [esp + 4], 0
mov esi, dword [esp + 0x68]
mov eax, dword [esp + 0x98]
mov edi, dword [esp]
mov dword [esi], eax
mov eax, dword [esp + 0x64]
mov dword [eax], edi
mov dword [ebp], ebx
mov ebx, dword [esp + 0x60]
mov ebp, dword [esp + 0x5c]
mov eax, dword [esp + 4]
mov dword [ebx], edx
mov edx, dword [esp + 0xa8]
mov dword [ebp], edx
mov edx, dword [esp + 0xac]
mov dword [ecx], edx
add esp, 0xb0
pop ebp
pop ebx
pop edi
pop esi
ret
mov ebx, 1
jmp 0x45f406
mov ebx, 1
jmp 0x45f478
mov ebp, 1
jmp 0x45f539
mov ebp, 1
jmp 0x45f672
mov ebx, 1
jmp 0x45f6d6
mov edx, 1
jmp 0x45f5af
cmp dword [esp + 0x24], 0
jle 0x45f5d9
cmp dword [esp + 0x24], 6
jle 0x45fb95
mov edx, dword [esp + 0x88]
sub edx, dword [esp + 0x2c]
mov dword [esp], edx
cmp eax, edx
jbe 0x45fb2e
mov edx, eax
sub edx, dword [esp]
cmp edx, dword [esp + 0x24]
jge 0x45fb3e
cmp eax, dword [esp]
jae 0x45fb95
mov edx, dword [esp]
sub edx, eax
cmp edx, dword [esp + 0x24]
jl 0x45fb95
mov edx, ecx
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
sar ebx, 1
test ebx, ebx
jbe 0x45fbfd
mov dword [esp + 0x10], edi
xor ebp, ebp
mov edi, dword [esp]
movzx ecx, byte [edi + ebp*2]
mov byte [eax + ebp*2], cl
movzx edx, byte [edi + ebp*2 + 1]
mov byte [eax + ebp*2 + 1], dl
inc ebp
cmp ebp, ebx
jb 0x45fb5a
mov edi, dword [esp + 0x10]
lea ebp, [ebp + ebp + 1]
lea edx, [ebp - 1]
cmp edx, dword [esp + 0x24]
jae 0x45f5ce
mov ebx, dword [esp]
movzx edx, byte [ebx + ebp - 1]
mov byte [ebp + eax - 1], dl
jmp 0x45f5ce
mov ebx, ecx
mov edx, ebx
shr edx, 0x1f
add edx, ebx
sar edx, 1
test edx, edx
jbe 0x45fc07
mov ebp, dword [esp + 0x88]
xor ebx, ebx
sub ebp, dword [esp + 0x2c]
mov dword [esp + 0x10], edi
mov edi, edx
movzx ecx, byte [ebp + ebx*2]
mov byte [eax + ebx*2], cl
movzx edx, byte [ebp + ebx*2 + 1]
mov byte [eax + ebx*2 + 1], dl
inc ebx
cmp ebx, edi
jb 0x45fbb7
mov edi, dword [esp + 0x10]
lea ebp, [ebx + ebx + 1]
lea edx, [ebp - 1]
cmp edx, dword [esp + 0x24]
jae 0x45f5ce
mov ebx, dword [esp + 0x2c]
neg ebx
add ebx, dword [esp + 0x88]
movzx edx, byte [ebp + ebx - 1]
mov byte [ebp + eax - 1], dl
jmp 0x45f5ce
mov ebp, 1
jmp 0x45fb77
mov ebp, 1
jmp 0x45fbd5
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0xac], ebp
mov ecx, dword [esp + 0xa0]
mov ebp, dword [esp + 0xa4]
mov ebx, dword [esp + 0x90]
mov edx, dword [esp + 0x94]
mov dword [esp], eax
mov dword [esp + 4], 0xffffff38
jmp 0x45fa7a
mov ebp, 1
jmp 0x45f75a
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x9c]
mov dword [esp], edi
mov edi, dword [esp + 0x54]
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x44]
mov dword [edi], esi
mov esi, dword [esp + 0x48]
mov dword [edi + 8], esi
mov esi, dword [esp + 0x58]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0xac], ebp
mov dword [edi + 0xc], eax
mov ecx, dword [esp + 0xa0]
mov ebp, dword [esp + 0xa4]
mov ebx, dword [esp + 0x90]
mov edx, dword [esp + 0x94]
mov dword [esi], 2
mov dword [esp + 4], 0
jmp 0x45fa7a
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x54]
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x9c]
mov dword [edi], esi
mov esi, dword [esp + 0x48]
mov dword [edi + 8], esi
mov dword [esp], eax
mov esi, dword [esp + 0x58]
mov eax, dword [esp + 0x44]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0xac], ebp
mov dword [edi + 0xc], eax
mov ecx, dword [esp + 0xa0]
mov ebp, dword [esp + 0xa4]
mov ebx, dword [esp + 0x90]
mov edx, dword [esp + 0x94]
mov dword [esi], 2
mov dword [esp + 4], 0
jmp 0x45fa7a
mov ebp, 1
jmp 0x45f7a2
mov eax, dword [esp + 0xa8]
mov edx, ecx
mov ebp, dword [esp + 0xac]
cmp edi, edx
jg 0x45fd72
movzx esi, word [edi*2 + 0x616cd4]
mov ecx, edi
and esi, ebx
sub edx, edi
shr ebx, cl
add dword [esp + 0x48], esi
mov dword [esp + 0x90], ebx
mov dword [esp + 0x94], edx
jmp 0x45f2f2
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x54]
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x9c]
mov dword [edi], esi
mov esi, dword [esp + 0x48]
mov dword [edi + 8], esi
mov dword [esp], eax
mov esi, dword [esp + 0x58]
mov eax, dword [esp + 0x44]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0xac], ebp
mov dword [edi + 0xc], eax
mov ecx, dword [esp + 0xa0]
mov ebp, dword [esp + 0xa4]
mov dword [esi], 2
mov dword [esp + 4], 0
jmp 0x45fa7a
mov eax, dword [esp + 0xa8]
mov edx, ecx
mov ebp, dword [esp + 0xac]
mov edi, ebx
and edi, dword [esp + 0x70]
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x40], esi
movzx esi, word [ecx + edi*2 + 0x400]
movzx edi, byte [edi + ecx]
mov ecx, edi
and ecx, 0xf
mov dword [esp + 0x48], esi
cmp edx, ecx
mov esi, dword [esp + 0x40]
jl 0x45fd72
shr edi, 4
sub edx, ecx
shr ebx, cl
mov dword [esp + 0x90], ebx
test edi, edi
mov dword [esp + 0x94], edx
je 0x45f2f2
mov esi, 4
jmp 0x45f82a
mov eax, dword [esp + 0xa8]
mov edx, ecx
mov ebp, dword [esp + 0xac]
cmp edi, edx
jg 0x45fd72
movzx esi, word [edi*2 + 0x616cd4]
mov ecx, edi
and esi, ebx
sub edx, edi
shr ebx, cl
add dword [esp + 0x44], esi
mov esi, 3
mov dword [esp + 0x90], ebx
mov dword [esp + 0x94], edx
jmp 0x45f8b6
mov edi, dword [esp + 0x58]
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x9c]
mov esi, dword [esp + 0x50]
mov dword [esp + 0xa8], edx
mov ecx, dword [esp + 0xa0]
mov ebp, dword [esp + 0xa4]
mov ebx, dword [esp + 0x90]
mov edx, dword [esp + 0x94]
mov dword [esp], eax
mov dword [esp + 0xac], esi
mov dword [edi], 0
mov dword [esp + 4], 0
jmp 0x45fa7a
mov edx, ecx
mov ecx, ebx
and ecx, dword [esp + 0x74]
mov edi, dword [esp + 0x80]
movzx eax, byte [edi + ecx*2 + 1]
movzx edi, byte [edi + ecx*2]
mov ecx, edi
and ecx, 0xf
mov dword [esp + 0x44], eax
cmp edx, ecx
jl 0x45ff93
shr ebx, cl
sub edx, ecx
and edi, 0xf0
jne 0x45ff1c
mov dword [esp + 0x94], edx
mov esi, 6
mov dword [esp + 0x90], ebx
mov eax, dword [esp + 0x4c]
jmp 0x45f7e8
cmp edi, 0xf0
jne 0x45ff5e
mov dword [esp], esi
mov esi, dword [esp + 0x58]
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xac], ebp
mov ecx, dword [esp + 0xa0]
mov ebp, dword [esp + 0xa4]
mov dword [esp + 0xa8], eax
mov dword [esi], 0
mov dword [esp + 4], 0
jmp 0x45fa7a
shr edi, 4
add eax, 3
mov dword [esp + 0x44], eax
and edi, 7
mov dword [esp + 0x94], edx
mov dword [esp + 0x90], ebx
mov eax, dword [esp + 0x4c]
je 0x45ff89
mov esi, 2
jmp 0x45f93c
mov esi, 3
jmp 0x45f8b6
mov dword [esp], esi
mov esi, dword [esp + 0x58]
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xac], ebp
mov ecx, dword [esp + 0xa0]
mov ebp, dword [esp + 0xa4]
mov dword [esp + 0xa8], eax
mov dword [esi], 1
mov dword [esp + 4], 0
jmp 0x45fa7a
mov edi, dword [esp + 0x54]
mov eax, dword [edi + 4]
mov dword [esp + 0x44], eax
mov esi, dword [edi]
cmp esi, 1
mov eax, dword [edi + 8]
mov edi, dword [edi + 0xc]
mov dword [esp + 0x48], eax
mov dword [esp + 0x10], edi
je 0x45f208
cmp esi, 6
je 0x46000e
cmp esi, 2
je 0x460092
cmp esi, 3
je 0x460071
cmp esi, 4
je 0x460050
cmp esi, 5
je 0x46002f
mov dword [esp + 0xa4], ebp
mov dword [esp + 0xa0], ecx
mov eax, dword [esp + 0xa8]
mov ebp, dword [esp + 0xac]
jmp 0x45f7e8
mov dword [esp + 0xa4], ebp
mov dword [esp + 0xa0], ecx
mov eax, dword [esp + 0xa8]
mov ebp, dword [esp + 0xac]
jmp 0x45f2f2
mov dword [esp + 0xa4], ebp
mov dword [esp + 0xa0], ecx
mov eax, dword [esp + 0xa8]
mov ebp, dword [esp + 0xac]
jmp 0x45f82a
mov dword [esp + 0xa4], ebp
mov dword [esp + 0xa0], ecx
mov eax, dword [esp + 0xa8]
mov ebp, dword [esp + 0xac]
jmp 0x45f8b6
mov dword [esp + 0xa4], ebp
mov dword [esp + 0xa0], ecx
mov eax, dword [esp + 0xa8]
mov ebp, dword [esp + 0xac]
jmp 0x45f93c
mov eax, 0xffffff38
add esp, 0xb0
pop ebp
pop ebx
pop edi
pop esi
ret