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

Disassembly:
push esi
push edi
push ebx
push ebp
lea esp, [esp - 0xa8]
mov ebx, dword [esp + 0xbc]
mov ecx, dword [esp + 0xcc]
mov edi, dword [esp + 0xe0]
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0xd0]
mov dword [esp + 0x80], edi
mov edi, dword [esp + 0xe4]
mov esi, dword [esp + 0xc4]
mov dword [esp + 0x60], ebx
mov dword [esp + 0x7c], edi
mov ebx, dword [ebx]
mov eax, dword [esp + 0xd4]
mov edi, dword [esp + 0xe8]
mov dword [esp + 0x90], ebx
mov dword [esp + 0x78], edi
mov ebx, dword [ecx]
mov edi, dword [esp + 0xec]
mov dword [esp + 0xa0], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x5c], esi
mov ebx, dword [esi]
mov dword [esp + 0x54], eax
mov esi, dword [esp + 0xc0]
mov eax, dword [eax]
mov dword [esp + 0xa4], eax
mov dword [esp + 0x48], eax
mov eax, dword [edi + 0x10]
mov esi, dword [esi]
mov dword [esp + 0x94], esi
mov edx, dword [esp + 0xc8]
mov dword [esp + 0x74], eax
mov esi, dword [edi + 0x14]
movzx eax, word [eax*2 + 0x616ca0]
mov ebp, dword [esp + 0xdc]
mov dword [esp + 0x6c], eax
add eax, eax
add eax, dword [esp + 0xe8]
mov dword [esp + 0x58], edx
add eax, 2
mov dword [esp + 0x4c], edi
mov edx, dword [edx]
movzx edi, word [esi*2 + 0x616ca0]
mov dword [esp + 0x50], ebp
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], edx
mov dword [esp + 0x70], esi
mov dword [esp + 0x68], edi
mov dword [esp + 0x64], eax
cmp dword [ebp], 2
mov ebp, dword [esp + 0xc0]
je 0x45e7f3
mov dword [esp + 0x40], 0
mov dword [esp + 0x98], ecx
mov dword [esp + 0x9c], ebp
mov eax, dword [esp + 0xa4]
mov esi, dword [esp + 0x94]
cmp dword [esp + 0x94], 6
jle 0x45e24e
cmp eax, 8
jle 0x45e24e
mov edi, dword [esp + 0x64]
lea eax, [esp + 0x44]
lea edx, [esp + 0x48]
lea ebp, [esp + 0xd8]
lea ebx, [esp + 0x8c]
lea ecx, [esp + 0x88]
lea esi, [esp + 4]
push edi
mov edi, dword [esp + 0x7c]
push edi
mov edi, dword [esp + 0x84]
push edi
mov edi, dword [esp + 0x90]
push edi
mov edi, dword [esp + 0x90]
push edi
push esi
mov esi, dword [esp + 0x80]
push esi
mov esi, dword [esp + 0x88]
push esi
mov edi, dword [esp + 0x90]
push edi
mov esi, dword [esp + 0x98]
push esi
push ecx
push ebx
push ebp
push edx
push eax
lea eax, [esp + 0xd0]
push eax
lea edx, [esp + 0xd0]
push edx
call fcn.00463b50
lea esp, [esp + 0x44]
test eax, eax
je 0x45e6a2
mov edx, eax
and eax, 0xf
mov ebp, dword [esp + 4]
mov ebx, ebp
add eax, 0xfffffffe
and ebp, 0xf
sar edx, 0x10
shr ebx, 0x10
mov dword [esp + 0x3c], edx
cmp eax, 4
mov dword [esp + 0x40], ebx
ja case.default.0x45db86
mov eax, dword [eax*4 + 0x616cc0]
jmp eax
mov eax, dword [esp + 0x48]
mov edi, dword [esp + 0x44]
mov edx, dword [esp + 0x3c]
mov ebp, edx
cmp edx, eax
jle 0x45dbaf
sub dword [esp + 0x3c], eax
mov ebp, eax
test eax, eax
je 0x45e2b6
mov esi, 5
jmp 0x45dbb4
mov esi, 1
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0xd8]
cmp edx, dword [esp + 0xd8]
jbe 0x45df8f
cmp dword [esp + 0x80], 0
je 0x45e4a6
mov edx, ebx
xor ecx, ecx
sub edx, dword [esp + 0x40]
mov eax, dword [esp + 0x40]
add edx, ebp
cmovs edx, ecx
mov ecx, ebp
sub eax, dword [esp + 0x84]
sub ecx, edx
sub eax, ebx
mov dword [esp + 0x20], edx
test eax, eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x24], eax
jle 0x45e3a0
mov edx, ecx
mov eax, edx
sub eax, dword [esp + 0x24]
xor ebx, ebx
test eax, eax
mov ecx, dword [esp + 0x24]
cmovle eax, ebx
mov dword [esp + 0x18], eax
mov eax, ecx
cmovle eax, edx
test eax, eax
jle 0x45dd2f
cmp eax, 6
jle 0x45dcc2
mov edx, dword [esp + 0x80]
add edx, dword [esp + 0x7c]
sub edx, dword [esp + 0x24]
mov dword [esp + 0x14], edx
cmp edi, edx
jbe 0x45dc5a
mov edx, edi
sub edx, dword [esp + 0x14]
cmp eax, edx
jle 0x45dc6a
cmp edi, dword [esp + 0x14]
jae 0x45dcc2
mov edx, dword [esp + 0x14]
sub edx, edi
cmp eax, edx
jg 0x45dcc2
mov ebx, eax
shr ebx, 0x1f
add ebx, eax
sar ebx, 1
test ebx, ebx
jbe 0x45e364
mov dword [esp + 0xc], ebp
xor edx, edx
mov dword [esp + 0x10], eax
mov ebp, dword [esp + 0x14]
movzx eax, byte [ebp + edx*2]
mov byte [edi + edx*2], al
movzx ecx, byte [ebp + edx*2 + 1]
mov byte [edi + edx*2 + 1], cl
lea edx, [edx + 1]
cmp edx, ebx
jb 0x45dc89
add edx, edx
mov ebp, dword [esp + 0xc]
inc edx
mov eax, dword [esp + 0x10]
mov ebx, edx
dec ebx
cmp eax, ebx
jbe 0x45dd2f
mov ebx, dword [esp + 0x14]
movzx eax, byte [ebx + edx - 1]
mov byte [edx + edi - 1], al
jmp 0x45dd2f
mov edx, eax
shr edx, 0x1f
add edx, eax
sar edx, 1
test edx, edx
jbe 0x45e36e
mov ecx, dword [esp + 0x80]
xor ebx, ebx
add ecx, dword [esp + 0x7c]
sub ecx, dword [esp + 0x24]
mov dword [esp + 0xc], ebp
mov ebp, edx
mov dword [esp + 0x10], eax
movzx edx, byte [ecx + ebx*2]
mov byte [edi + ebx*2], dl
movzx eax, byte [ecx + ebx*2 + 1]
mov byte [edi + ebx*2 + 1], al
lea ebx, [ebx + 1]
cmp ebx, ebp
jb 0x45dcee
add ebx, ebx
mov ebp, dword [esp + 0xc]
inc ebx
mov eax, dword [esp + 0x10]
mov edx, ebx
dec edx
cmp eax, edx
jbe 0x45dd2f
mov edx, dword [esp + 0x80]
add edx, dword [esp + 0x7c]
sub edx, dword [esp + 0x24]
movzx eax, byte [ebx + edx - 1]
mov byte [ebx + edi - 1], al
cmp dword [esp + 0x18], 0
je 0x45de60
jle 0x45de60
cmp dword [esp + 0x18], 6
jle 0x45ddec
mov eax, dword [esp + 0x24]
add eax, edi
mov dword [esp], eax
cmp eax, dword [esp + 0x80]
jbe 0x45dd6a
sub eax, dword [esp + 0x80]
cmp eax, dword [esp + 0x18]
jge 0x45dd86
mov eax, dword [esp]
cmp eax, dword [esp + 0x80]
jae 0x45ddec
mov eax, dword [esp + 0x80]
sub eax, dword [esp]
cmp eax, dword [esp + 0x18]
jl 0x45ddec
mov edx, dword [esp + 0x18]
mov eax, edx
shr eax, 0x1f
add eax, edx
sar eax, 1
test eax, eax
jbe 0x45e378
mov dword [esp + 0xc], ebp
xor edx, edx
mov ebp, dword [esp]
mov edi, dword [esp + 0x80]
movzx ecx, byte [edi + edx*2]
mov byte [ebp + edx*2], cl
movzx ebx, byte [edi + edx*2 + 1]
mov byte [ebp + edx*2 + 1], bl
lea edx, [edx + 1]
cmp edx, eax
jb 0x45ddab
add edx, edx
mov ebp, dword [esp + 0xc]
inc edx
mov eax, edx
dec eax
cmp eax, dword [esp + 0x18]
jae 0x45de60
mov ebx, dword [esp + 0x80]
mov edi, dword [esp]
movzx eax, byte [ebx + edx - 1]
mov byte [edi + edx - 1], al
jmp 0x45de60
mov eax, dword [esp + 0x18]
mov ebx, eax
shr ebx, 0x1f
add ebx, eax
sar ebx, 1
test ebx, ebx
jbe 0x45e396
mov eax, dword [esp + 0x24]
xor edx, edx
mov dword [esp + 0xc], ebp
add eax, edi
mov dword [esp + 0xa0], edi
mov ebp, dword [esp + 0x80]
movzx ecx, byte [ebp + edx*2]
mov byte [eax + edx*2], cl
movzx ecx, byte [ebp + edx*2 + 1]
mov byte [eax + edx*2 + 1], cl
lea edx, [edx + 1]
cmp edx, ebx
jb 0x45de1b
add edx, edx
mov ebp, dword [esp + 0xc]
inc edx
mov edi, dword [esp + 0xa0]
mov eax, edx
dec eax
cmp eax, dword [esp + 0x18]
jae 0x45de60
mov ebx, dword [esp + 0x24]
add ebx, edi
mov edi, dword [esp + 0x80]
movzx eax, byte [edx + edi - 1]
mov byte [edx + ebx - 1], al
mov edi, dword [esp + 0x44]
mov ebx, dword [esp + 0xd8]
cmp dword [esp + 0x20], 0
jne 0x45de7b
mov eax, dword [esp + 0x48]
jmp 0x45e059
mov eax, edi
add dword [esp + 0x1c], edi
sub eax, ebx
mov dword [esp + 8], eax
cmp dword [esp + 0x20], 0
jle 0x45de72
cmp dword [esp + 0x20], 6
jle 0x45df2a
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + 8]
jbe 0x45dead
sub eax, dword [esp + 8]
cmp eax, dword [esp + 0x20]
jge 0x45dec5
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + 8]
jae 0x45df2a
mov eax, dword [esp + 8]
sub eax, dword [esp + 0x1c]
cmp eax, dword [esp + 0x20]
jl 0x45df2a
mov edx, dword [esp + 0x20]
mov eax, edx
shr eax, 0x1f
add eax, edx
sar eax, 1
test eax, eax
jbe 0x45e382
mov dword [esp + 0xc], ebp
xor edx, edx
mov ebp, dword [esp + 0x1c]
mov edi, dword [esp + 8]
movzx ecx, byte [edi + edx*2]
mov byte [ebp + edx*2], cl
movzx ebx, byte [edi + edx*2 + 1]
mov byte [ebp + edx*2 + 1], bl
lea edx, [edx + 1]
cmp edx, eax
jb 0x45dee8
add edx, edx
mov ebp, dword [esp + 0xc]
inc edx
mov eax, edx
dec eax
cmp eax, dword [esp + 0x20]
jae 0x45e04a
mov ebx, dword [esp + 8]
mov edi, dword [esp + 0x1c]
movzx eax, byte [ebx + edx - 1]
mov byte [edi + edx - 1], al
jmp 0x45e04a
mov edx, dword [esp + 0x20]
mov eax, edx
shr eax, 0x1f
add eax, edx
sar eax, 1
test eax, eax
jbe 0x45e38c
mov dword [esp + 0xc], ebp
xor edx, edx
mov ebp, dword [esp + 0x1c]
mov edi, dword [esp + 8]
movzx ecx, byte [edi + edx*2]
mov byte [ebp + edx*2], cl
movzx ebx, byte [edi + edx*2 + 1]
mov byte [ebp + edx*2 + 1], bl
lea edx, [edx + 1]
cmp edx, eax
jb 0x45df4d
add edx, edx
mov ebp, dword [esp + 0xc]
inc edx
mov eax, edx
dec eax
cmp eax, dword [esp + 0x20]
jae 0x45e04a
mov ebx, dword [esp + 8]
mov edi, dword [esp + 0x1c]
movzx eax, byte [edx + ebx - 1]
mov byte [edx + edi - 1], al
jmp 0x45e04a
mov edx, edi
sub edx, dword [esp + 0x40]
test ebp, ebp
jle 0x45e059
cmp ebp, 6
jle 0x45e003
cmp edi, edx
jbe 0x45dfae
mov eax, edi
sub eax, edx
cmp ebp, eax
jle 0x45dfba
cmp edx, edi
jbe 0x45e003
mov eax, edx
sub eax, edi
cmp ebp, eax
jg 0x45e003
mov eax, ebp
shr eax, 0x1f
add eax, ebp
sar eax, 1
test eax, eax
jbe 0x45e4e7
mov dword [esp + 0xc], ebp
xor ebx, ebx
mov ebp, eax
movzx eax, byte [edx + ebx*2]
mov byte [edi + ebx*2], al
movzx ecx, byte [edx + ebx*2 + 1]
mov byte [edi + ebx*2 + 1], cl
lea ebx, [ebx + 1]
cmp ebx, ebp
jb 0x45dfd3
add ebx, ebx
mov ebp, dword [esp + 0xc]
inc ebx
mov eax, ebx
dec eax
cmp ebp, eax
jbe 0x45e04a
movzx eax, byte [edx + ebx - 1]
mov byte [ebx + edi - 1], al
jmp 0x45e04a
mov eax, ebp
shr eax, 0x1f
add eax, ebp
sar eax, 1
test eax, eax
jbe 0x45e559
mov dword [esp + 0xc], ebp
xor ebx, ebx
mov ebp, eax
movzx eax, byte [edx + ebx*2]
mov byte [edi + ebx*2], al
movzx ecx, byte [edx + ebx*2 + 1]
mov byte [edi + ebx*2 + 1], cl
lea ebx, [ebx + 1]
cmp ebx, ebp
jb 0x45e01c
add ebx, ebx
mov ebp, dword [esp + 0xc]
inc ebx
mov eax, ebx
dec eax
cmp ebp, eax
jbe 0x45e04a
movzx eax, byte [ebx + edx - 1]
mov byte [ebx + edi - 1], al
mov edi, dword [esp + 0x44]
mov eax, dword [esp + 0x48]
mov ebx, dword [esp + 0xd8]
add ebx, ebp
add edi, ebp
sub eax, ebp
mov dword [esp + 0xd8], ebx
cmp esi, 5
je 0x45e4f1
mov dword [esp + 0x48], eax
cmp esi, 1
mov dword [esp + 0x44], edi
je 0x45daaf
test eax, eax
je 0x45e4f1
mov eax, dword [esp + 0x3c]
mov byte [edi], al
mov eax, dword [esp + 0x48]
dec eax
inc dword [esp + 0x44]
inc dword [esp + 0xd8]
mov dword [esp + 0x48], eax
jmp 0x45daaf
mov eax, dword [esp + 0x48]
mov esi, 4
mov edi, dword [esp + 0x44]
mov ebx, dword [esp + 0x88]
mov edx, dword [esp + 0x8c]
cmp edx, ebp
jg 0x45e573
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x94]
mov dword [esp + 0x28], ecx
mov ecx, edx
mov dword [esp + 0xa0], edi
mov dword [esp + 0xa4], eax
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
jmp 0x45e108
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x88], ebx
test edi, edi
jle 0x45e563
movzx edx, byte [eax]
inc eax
shl edx, cl
add ecx, 8
or ebx, edx
dec edi
mov dword [esp + 0x90], eax
cmp ecx, ebp
mov dword [esp + 0x94], edi
jle 0x45e0fa
jmp 0x45e563
mov eax, dword [esp + 0x48]
mov esi, 3
mov edi, dword [esp + 0x44]
mov ebx, dword [esp + 0x88]
mov edx, dword [esp + 0x8c]
cmp edx, dword [esp + 0x70]
jg 0x45e608
mov dword [esp + 0xa4], eax
mov eax, edx
mov ecx, dword [esp + 0x90]
mov edx, ecx
mov ebp, dword [esp + 0x94]
mov ecx, eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0xa0], edi
jmp 0x45e18e
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x88], ebx
test ebp, ebp
jle 0x45e5f8
movzx edi, byte [edx]
inc edx
shl edi, cl
add ecx, 8
or ebx, edi
dec ebp
mov dword [esp + 0x90], edx
cmp ecx, eax
mov dword [esp + 0x94], ebp
jle 0x45e180
jmp 0x45e5f8
mov eax, dword [esp + 0x48]
mov esi, 2
mov edi, dword [esp + 0x44]
mov ebx, dword [esp + 0x88]
mov edx, dword [esp + 0x8c]
cmp edx, ebp
jg 0x45e66e
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x94]
mov dword [esp + 0x30], ecx
mov ecx, edx
mov dword [esp + 0xa0], edi
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x34]
jmp 0x45e21a
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x88], ebx
test eax, eax
jle 0x45e65e
movzx edx, byte [edi]
inc edi
shl edx, cl
add ecx, 8
or ebx, edx
dec eax
mov dword [esp + 0x90], edi
cmp ecx, ebp
mov dword [esp + 0x94], eax
jle 0x45e20c
jmp 0x45e65e
mov eax, dword [esp + 0x48]
jmp 0x45daaf
mov ebp, dword [esp + 0x74]
mov edx, dword [esp + 0x8c]
mov ebx, dword [esp + 0x88]
cmp ebp, dword [esp + 0x8c]
jl 0x45e6f7
mov ebp, dword [esp + 0x90]
mov ecx, edx
mov edi, dword [esp + 0x74]
jmp 0x45e28a
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x88], ebx
test esi, esi
jle 0x45e6f5
movzx edx, byte [ebp]
inc ebp
shl edx, cl
add ecx, 8
or ebx, edx
dec esi
mov dword [esp + 0x90], ebp
cmp ecx, edi
mov dword [esp + 0x94], esi
jle 0x45e27c
jmp 0x45e6f5
mov esi, dword [esp + 0x4c]
mov dword [esp + 0xa0], edi
mov dword [esp + 0xa4], eax
mov edi, dword [esp + 0x94]
mov eax, dword [esp + 0x3c]
mov dword [esp], edi
mov dword [esi + 4], eax
mov eax, dword [esp + 0x40]
mov edi, dword [esp + 0xa4]
mov dword [esi], 5
mov dword [esi + 8], eax
mov dword [esi + 0xc], edi
mov esi, dword [esp + 0x50]
mov ecx, dword [esp + 0x98]
mov ebp, dword [esp + 0x9c]
mov ebx, dword [esp + 0x88]
mov edx, dword [esp + 0x8c]
mov dword [esi], 2
mov dword [esp + 8], 0
mov esi, dword [esp + 0x60]
mov eax, dword [esp + 0x90]
mov edi, dword [esp]
mov dword [esi], eax
mov dword [ebp], edi
mov ebp, dword [esp + 0x5c]
mov eax, dword [esp + 8]
mov dword [ebp], ebx
mov ebx, dword [esp + 0x58]
mov dword [ebx], edx
mov edx, dword [esp + 0xa0]
mov dword [ecx], edx
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0xa4]
mov dword [edx], ecx
lea esp, [esp + 0xa8]
pop ebp
pop ebx
pop edi
pop esi
ret
mov edx, 1
jmp 0x45dcac
mov ebx, 1
jmp 0x45dd10
mov edx, 1
jmp 0x45ddca
mov edx, 1
jmp 0x45df07
mov edx, 1
jmp 0x45df6c
mov edx, 1
jmp 0x45de41
cmp dword [esp + 0x1c], 0
jle 0x45de6b
cmp dword [esp + 0x1c], 6
jle 0x45e42d
mov ebx, dword [esp + 0x80]
sub ebx, dword [esp + 0x24]
cmp edi, ebx
jbe 0x45e3cb
mov eax, edi
sub eax, ebx
cmp eax, dword [esp + 0x1c]
jge 0x45e3d9
cmp ebx, edi
jbe 0x45e42d
mov eax, ebx
sub eax, edi
cmp eax, dword [esp + 0x1c]
jl 0x45e42d
mov edx, ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
sar eax, 1
test eax, eax
jbe 0x45e495
mov dword [esp + 0xc], ebp
xor edx, edx
mov ebp, eax
movzx eax, byte [ebx + edx*2]
mov byte [edi + edx*2], al
movzx ecx, byte [ebx + edx*2 + 1]
mov byte [edi + edx*2 + 1], cl
lea edx, [edx + 1]
cmp edx, ebp
jb 0x45e3f4
add edx, edx
mov ebp, dword [esp + 0xc]
inc edx
mov eax, edx
dec eax
cmp eax, dword [esp + 0x1c]
jae 0x45de60
movzx eax, byte [ebx + edx - 1]
mov byte [edx + edi - 1], al
jmp 0x45de60
mov edx, ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
sar eax, 1
test eax, eax
jbe 0x45e49f
mov ecx, dword [esp + 0x80]
xor ebx, ebx
sub ecx, dword [esp + 0x24]
mov dword [esp + 0xc], ebp
mov ebp, eax
movzx edx, byte [ecx + ebx*2]
mov byte [edi + ebx*2], dl
movzx eax, byte [ecx + ebx*2 + 1]
mov byte [edi + ebx*2 + 1], al
lea ebx, [ebx + 1]
cmp ebx, ebp
jb 0x45e44f
add ebx, ebx
mov ebp, dword [esp + 0xc]
inc ebx
mov eax, ebx
dec eax
cmp eax, dword [esp + 0x1c]
jae 0x45de60
mov edx, dword [esp + 0x24]
neg edx
add edx, dword [esp + 0x80]
movzx eax, byte [ebx + edx - 1]
mov byte [ebx + edi - 1], al
jmp 0x45de60
mov edx, 1
jmp 0x45e412
mov ebx, 1
jmp 0x45e46d
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x98]
mov ebp, dword [esp + 0x9c]
mov ebx, dword [esp + 0x88]
mov edx, dword [esp + 0x8c]
mov dword [esp + 0xa0], edi
mov dword [esp], eax
mov dword [esp + 8], 0xffffff38
jmp 0x45e31e
mov ebx, 1
jmp 0x45dff1
mov dword [esp + 0xa0], edi
mov edi, dword [esp + 0x94]
mov dword [esp], edi
mov edi, dword [esp + 0x4c]
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x3c]
mov dword [edi], esi
mov esi, dword [esp + 0x40]
mov dword [edi + 8], esi
mov esi, dword [esp + 0x50]
mov dword [esp + 0xc], ebp
mov dword [edi + 4], eax
mov eax, ebp
mov dword [edi + 0xc], eax
mov ecx, dword [esp + 0x98]
mov ebp, dword [esp + 0x9c]
mov ebx, dword [esp + 0x88]
mov edx, dword [esp + 0x8c]
mov dword [esi], 2
mov dword [esp + 8], 0
jmp 0x45e31e
mov ebx, 1
jmp 0x45e03a
mov edi, dword [esp + 0xa0]
mov edx, ecx
mov eax, dword [esp + 0xa4]
cmp ebp, edx
jg 0x45e59e
movzx esi, word [ebp*2 + 0x616ca0]
mov ecx, ebp
and esi, ebx
sub edx, ebp
shr ebx, cl
add dword [esp + 0x40], esi
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], edx
jmp 0x45db90
mov dword [esp + 0xa0], edi
mov edi, dword [esp + 0x4c]
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x94]
mov dword [edi], esi
mov esi, dword [esp + 0x40]
mov dword [edi + 8], esi
mov dword [esp], eax
mov esi, dword [esp + 0x50]
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xc], ebp
mov dword [edi + 4], eax
mov eax, ebp
mov dword [edi + 0xc], eax
mov ecx, dword [esp + 0x98]
mov ebp, dword [esp + 0x9c]
mov dword [esi], 2
mov dword [esp + 8], 0
jmp 0x45e31e
mov edi, dword [esp + 0xa0]
mov edx, ecx
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x38], esi
mov esi, ebx
and esi, dword [esp + 0x68]
mov ecx, dword [esp + 0x64]
movzx ebp, word [ecx + esi*2 + 0x400]
mov dword [esp + 0x40], ebp
movzx ebp, byte [esi + ecx]
mov ecx, ebp
and ecx, 0xf
mov esi, dword [esp + 0x38]
cmp edx, ecx
jl 0x45e59e
shr ebp, 4
sub edx, ecx
shr ebx, cl
mov dword [esp + 0x88], ebx
test ebp, ebp
mov dword [esp + 0x8c], edx
je 0x45db90
mov esi, 4
jmp 0x45e0c2
mov edi, dword [esp + 0xa0]
mov edx, ecx
mov eax, dword [esp + 0xa4]
cmp ebp, edx
jg 0x45e59e
movzx esi, word [ebp*2 + 0x616ca0]
mov ecx, ebp
and esi, ebx
sub edx, ebp
shr ebx, cl
add dword [esp + 0x3c], esi
mov esi, 3
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], edx
jmp 0x45e14e
mov edi, dword [esp + 0x50]
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x94]
mov esi, dword [esp + 0x48]
mov dword [esp + 0xa0], edx
mov ecx, dword [esp + 0x98]
mov ebp, dword [esp + 0x9c]
mov ebx, dword [esp + 0x88]
mov edx, dword [esp + 0x8c]
mov dword [esp], eax
mov dword [esp + 0xa4], esi
mov dword [edi], 0
mov dword [esp + 8], 0
jmp 0x45e31e
mov edx, ecx
mov edi, ebx
and edi, dword [esp + 0x6c]
mov ebp, dword [esp + 0x78]
movzx ecx, byte [ebp + edi*2 + 1]
movzx ebp, byte [ebp + edi*2]
mov dword [esp + 0x3c], ecx
mov ecx, ebp
and ecx, 0xf
cmp edx, ecx
jl 0x45e7b9
shr ebx, cl
sub edx, ecx
and ebp, 0xf0
jne 0x45e744
mov dword [esp + 0x8c], edx
mov esi, 6
mov dword [esp + 0x88], ebx
mov edi, dword [esp + 0x44]
jmp 0x45e080
cmp ebp, 0xf0
jne 0x45e786
mov dword [esp], esi
mov esi, dword [esp + 0x50]
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x98]
mov ebp, dword [esp + 0x9c]
mov dword [esp + 0xa0], eax
mov dword [esi], 0
mov dword [esp + 8], 0
jmp 0x45e31e
shr ebp, 4
add dword [esp + 0x3c], 3
mov edi, dword [esp + 0x44]
and ebp, 7
mov dword [esp + 0x8c], edx
mov dword [esp + 0x88], ebx
je 0x45e7af
mov esi, 2
jmp 0x45e1d4
mov esi, 3
jmp 0x45e14e
mov dword [esp], esi
mov esi, dword [esp + 0x50]
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x98]
mov ebp, dword [esp + 0x9c]
mov dword [esp + 0xa0], eax
mov dword [esi], 1
mov dword [esp + 8], 0
jmp 0x45e31e
mov edi, dword [esp + 0x4c]
mov eax, dword [edi + 4]
mov dword [esp + 0x3c], eax
mov eax, dword [edi + 8]
mov dword [esp + 0x40], eax
mov eax, dword [edi + 0xc]
mov esi, dword [edi]
mov dword [esp + 0xc], eax
cmp dword [edi], 1
je 0x45da9a
cmp esi, 6
je 0x45e834
cmp esi, 2
je 0x45e8bc
cmp esi, 3
je 0x45e89b
cmp esi, 4
je 0x45e878
cmp esi, 5
je 0x45e857
mov dword [esp + 0x9c], ebp
mov dword [esp + 0x98], ecx
mov ebp, eax
mov edi, dword [esp + 0xa0]
mov eax, dword [esp + 0xa4]
jmp 0x45e080
mov dword [esp + 0x98], ecx
mov dword [esp + 0x9c], ebp
mov edi, dword [esp + 0xa0]
mov eax, dword [esp + 0xa4]
jmp 0x45db90
mov dword [esp + 0x9c], ebp
mov dword [esp + 0x98], ecx
mov ebp, eax
mov edi, dword [esp + 0xa0]
mov eax, dword [esp + 0xa4]
jmp 0x45e0c2
mov dword [esp + 0x98], ecx
mov dword [esp + 0x9c], ebp
mov edi, dword [esp + 0xa0]
mov eax, dword [esp + 0xa4]
jmp 0x45e14e
mov dword [esp + 0x9c], ebp
mov dword [esp + 0x98], ecx
mov ebp, eax
mov edi, dword [esp + 0xa0]
mov eax, dword [esp + 0xa4]
jmp 0x45e1d4
mov eax, 0xffffff38
lea esp, [esp + 0xa8]
pop ebp
pop ebx
pop edi
pop esi
ret