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

Disassembly:
push edi
push esi
push ebp
push ebx
sub esp, 0x678
mov eax, dword [esp + 0x68c]
mov ebp, dword [esp + 0x690]
mov esi, dword [esp + 0x694]
mov ebx, dword [esp + 0x698]
mov edx, dword [esp + 0x69c]
mov ecx, dword [esp + 0x6a0]
mov dword [esp + 0x5e4], eax
mov eax, dword [esp + 0x6a4]
mov dword [esp + 0x5e0], ebx
mov dword [esp + 0x5ec], edx
mov dword [esp + 0x5e8], ecx
mov dword [esp + 0x5dc], eax
xor eax, eax
mov dword [esp + 0x5bc], eax
mov dword [esp + 0x5b8], eax
mov dword [esp + 0x5b4], eax
mov dword [esp + 0x5b0], eax
test ebx, 0x8010000
je 0x455205
mov eax, ebx
test eax, 0x10000
je 0x4551f7
lea eax, [esp + 0x6af]
and eax, 0xfffffffc
movsx edx, byte [eax]
mov dword [esp + 0x650], edx
jmp 0x455211
mov eax, 0x2c
mov dword [esp + 0x650], eax
jmp 0x455211
mov eax, 0x2e
mov dword [esp + 0x650], eax
test esi, esi
jle 0x4590c9
mov ecx, ebx
xor ebx, ebx
mov dword [esp + 0x4b0], ebx
mov edx, ecx
mov dword [esp + 0x4ac], ebx
mov eax, ecx
mov dword [esp + 0x4a8], ebx
mov dword [esp + 0x4a4], ebx
mov dword [esp + 0x4a0], ebx
and edx, 0x80
and eax, 0x80000000
mov dword [esp + 0x49c], ebx
mov dword [esp + 0x498], ebx
mov ebx, edx
shl ebx, 4
shl edx, 0x18
mov dword [esp + 0x5d0], eax
and edx, eax
shr edx, 0x13
or ebx, edx
test cl, 0x20
je 0x455293
movsx eax, byte [ebp]
cmp eax, 9
jl 0x455293
cmp eax, 0xd
jle 0x45528b
cmp eax, 0x20
jne 0x455293
add ebp, 1
add esi, 0xffffffff
jne 0x455278
mov dword [esp + 0x5d4], ebp
test esi, esi
je 0x455753
movsx eax, byte [ebp]
cmp eax, 0x2d
jne 0x4552b0
or ebx, 8
jmp 0x4552b5
cmp eax, 0x2b
jne 0x4552c4
or ebx, 2
add ebp, 1
add esi, 0xffffffff
je 0x455753
mov dword [esp + 0x664], esi
xor edi, edi
mov dword [esp + 0x670], edi
xor eax, eax
mov dword [esp + 0x674], eax
mov dword [esp + 0x660], eax
mov dword [esp + 0x65c], eax
mov edx, 9
mov ecx, 5
mov dword [esp + 0x668], ecx
mov dword [esp + 0x654], edx
mov ecx, 1
mov dword [esp + 0x66c], ecx
mov dword [esp + 0x658], eax
movsx esi, byte [ebp]
lea edx, [esi - 9]
cmp edx, 0x6f
ja case.0x45532d.10
mov edx, dword [edx*4 + 0x4bbb40]
jmp edx
mov edx, dword [esp + 0x5e0]
test dl, 0x10
jne 0x455735
jmp case.0x45532d.10
mov edx, dword [esp + 0x5e0]
test edx, 0x100
je case.0x45532d.10
test ebx, 0x200
jne case.0x45532d.10
mov edx, dword [esp + 0x670]
test edx, edx
jne case.0x45532d.10
mov edx, dword [esp + 0x658]
cmp edx, 1
jne case.0x45532d.10
xor ebx, 4
or ebx, 0x200
mov edx, 8
mov dword [esp + 0x654], edx
mov ecx, 4
mov dword [esp + 0x668], ecx
mov esi, 3
mov dword [esp + 0x66c], esi
jmp 0x455735
mov ecx, dword [esp + 0x5e0]
mov edx, ebx
and edx, 0x200
and ecx, 0x1000
or edx, ecx
jne case.0x45532d.10
jmp 0x457c0b
test ebx, 0x200
je case.0x45532d.10
jmp 0x457d39
test ebx, 0x800
je case.0x45532d.10
mov edx, dword [esp + 0x658]
or edx, dword [esp + 0x670]
mov ecx, ebx
and ecx, 0x201
or edx, ecx
jne case.0x45532d.10
mov ecx, dword [esp + 0x664]
mov dword [esp + 0xb8], ebp
mov edx, 0x44d600c
test ecx, ecx
je 0x457fa5
mov dword [esp + 0x484], edi
mov dword [esp + 0x150], esi
mov esi, ecx
movsx ecx, byte [edx]
test ecx, ecx
je 0x457d4c
movsx ecx, byte [ebp]
mov edi, edx
movsx edi, byte [edi]
add edx, 1
or ecx, 0x20
or edi, 0x20
cmp ecx, edi
jne 0x457eff
add ebp, 1
add esi, 0xffffffff
jne 0x45543c
mov edi, dword [esp + 0x484]
movsx ecx, byte [edx]
mov dword [esp + 0x664], esi
mov esi, dword [esp + 0x150]
mov dword [esp + 0xbc], ecx
test ecx, ecx
je 0x457d45
mov ebp, dword [esp + 0xb8]
sub edx, ebp
mov dword [esp + 0x664], edx
jmp case.0x45532d.10
test ebx, 0x800
je case.0x45532d.10
mov edx, dword [esp + 0x658]
or edx, dword [esp + 0x670]
mov ecx, ebx
and ecx, 0x201
or edx, ecx
jne case.0x45532d.10
mov ecx, dword [esp + 0x664]
mov dword [esp + 0xbc], ebp
mov edx, section._RDATA
test ecx, ecx
je 0x457f4d
mov dword [esp + 0x484], edi
mov edi, ecx
mov dword [esp + 0x150], esi
movsx esi, byte [edx]
test esi, esi
je 0x457f33
movsx ecx, byte [ebp]
or ecx, 0x20
or esi, 0x20
cmp ecx, esi
jne 0x457f19
add edx, 1
add ebp, 1
add edi, 0xffffffff
jne 0x4554fa
mov esi, dword [esp + 0x150]
movsx ecx, byte [edx]
mov dword [esp + 0x664], edi
mov edi, dword [esp + 0x484]
test ecx, ecx
jne 0x4555de
mov dword [esp + 0x5d4], ebp
test bl, 8
je 0x45555c
mov edx, 0x4bd090
mov dword [esp + 0xbc], edx
jmp 0x455568
mov edx, 0x4bd080
mov dword [esp + 0xbc], edx
mov ecx, dword [edx]
mov dword [esp + 0x5b0], ecx
mov ecx, dword [edx + 4]
and ebx, 0xfffffff7
mov dword [esp + 0x5b4], ecx
mov ecx, dword [edx + 8]
mov edx, dword [edx + 0xc]
mov dword [esp + 0x5b8], ecx
mov dword [esp + 0x5bc], edx
mov edx, dword [esp + 0x5e0]
test edx, 0x40000000
je 0x4555a7
or ebx, 0xc000000
test dl, 2
je case.0x45532d.10
mov edx, dword [esp + 0x664]
test edx, edx
je case.0x45532d.10
mov ecx, edx
movsx edx, byte [ebp]
cmp edx, 0x20
jne 0x4555d2
add ebp, 1
add ecx, 0xffffffff
jne 0x4555c1
mov dword [esp + 0x664], ecx
jmp case.0x45532d.10
movsx ecx, byte [edx - 1]
cmp ecx, 0x66
je 0x455542
mov ebp, dword [esp + 0xbc]
sub edx, ebp
mov dword [esp + 0x664], edx
jmp case.0x45532d.10
test ebx, 0x200
jne 0x455639
jmp 0x457f55
test ebx, 0x200
jne 0x455639
mov edx, dword [esp + 0x5e0]
test edx, 0x1000
jne case.0x45532d.10
jmp 0x457f55
test ebx, 0x200
je case.0x45532d.10
or esi, 0x20
add esi, 0xffffffa9
jmp 0x455644
add esi, 0xffffffd0
add dword [esp + 0x670], 1
or ebx, 4
mov ecx, ebx
and ecx, 0x201
xor edx, edx
cmp ecx, 0x200
sete dl
sub edi, edx
mov edx, dword [esp + 0x654]
add edi, 1
cmp eax, edx
je 0x457f61
mov ecx, dword [esp + 0x66c]
mov edx, dword [esp + 0x674]
add eax, 1
mov dword [esp + 0x5d8], eax
mov eax, edx
shl eax, cl
lea esi, [esi + edx*8]
add esi, eax
mov eax, dword [esp + 0x5d8]
mov dword [esp + 0x674], esi
jmp 0x455735
mov edx, dword [esp + 0x670]
test edx, edx
jne case.0x45532d.49
mov edx, ebx
and edx, 1
add edi, edx
xor edx, 1
or ebx, 4
add dword [esp + 0x658], edx
jmp 0x455735
mov edx, dword [esp + 0x5e0]
test dl, 8
jne 0x455735
jmp case.0x45532d.10
mov edx, dword [esp + 0x5e0]
test dl, 4
jne 0x455735
jmp case.0x45532d.10
mov edx, dword [esp + 0x5e0]
test edx, 0x800
jne case.0x45532d.10
jmp 0x457fb4
mov edx, dword [esp + 0x5e0]
test dl, 2
jne 0x455735
jmp 0x457fc6
mov edx, dword [esp + 0x5e0]
test dl, 1
jne 0x455735
mov edx, dword [esp + 0x650]
cmp esi, edx
jne 0x457ff5
test bl, 1
jne 0x457fd9
or ebx, 1
xor edi, edi
mov edx, dword [esp + 0x664]
add ebp, 1
add edx, 0xffffffff
mov dword [esp + 0x664], edx
jne 0x455316
mov esi, edx
jmp 0x455773
xor edi, edi
mov dword [esp + 0x670], edi
xor eax, eax
mov dword [esp + 0x674], eax
mov dword [esp + 0x660], eax
mov dword [esp + 0x65c], eax
mov dword [esp + 0x658], ebp
xor edx, edx
mov dword [esp + 0x668], edx
test bl, 4
jne 0x455796
mov ecx, dword [esp + 0x5d4]
mov dword [esp + 0x658], ecx
test bl, 0x40
je 0x4557a2
mov dword [esp + 0x658], ebp
mov ecx, dword [esp + 0x5e0]
test ecx, 0x8000
je 0x4557d9
mov ecx, dword [esp + 0x5d0]
test ecx, ecx
je 0x4557ca
movsx ecx, byte [ebp]
test ecx, ecx
je 0x4557d9
test esi, esi
jne 0x4557ce
jmp 0x4557d9
test esi, esi
je 0x4557d9
or ebx, 0x3000000
jmp 0x45799c
mov ecx, dword [esp + 0x670]
test ecx, ecx
jne 0x45581b
mov eax, ebx
and eax, 0xc
cmp eax, 0xc
jne 0x4557f9
xor dword [esp + 0x5bc], 0x80000000
mov eax, dword [esp + 0x5e0]
and eax, 0x28000
cmp eax, 0x28000
jne 0x45799c
or ebx, 0x3000000
jmp 0x45799c
test bl, 0x10
je 0x455874
cmp edx, 6
jbe 0x455836
mov eax, ebx
and eax, 8
mov dword [esp + 0x5e8], eax
jmp 0x457780
test ebx, 0x80
je 0x45584e
mov edx, dword [esp + 0x668]
neg edx
mov dword [esp + 0x668], edx
mov edx, dword [esp + 0x5e0]
test edx, 0x400
je 0x455884
mov edx, dword [esp + 0x668]
sub edx, dword [esp + 0x5e8]
mov dword [esp + 0x668], edx
jmp 0x455884
mov edx, dword [esp + 0x5e8]
neg edx
mov dword [esp + 0x668], edx
test ebx, 0x200
je 0x455ac3
mov edx, dword [esp + 0x668]
neg edi
add edi, dword [esp + 0x670]
lea ecx, [edx + edi*4]
mov dword [esp + 0x654], ecx
test bl, 1
jne 0x4558c2
mov edx, dword [esp + 0x5ec]
shl edx, 2
sub ecx, edx
mov dword [esp + 0x654], ecx
mov edx, dword [esp + 0x670]
neg eax
lea ecx, [eax*4 + 0x20]
mov eax, dword [esp + 0x674]
shl eax, cl
mov dword [esp + 0x674], eax
cmp edx, 8
ja 0x455922
test eax, eax
jle 0x457ffe
mov edx, eax
xor eax, eax
add edx, edx
add eax, 1
test edx, edx
jg 0x4558f3
mov dword [esp + 0x674], edx
mov edx, dword [esp + 0x674]
mov dword [esp + 0x49c], edx
mov esi, 1
mov dword [esp + 0x660], esi
jmp 0x455aae
mov eax, dword [esp + 0x660]
mov edx, dword [esp + 0x674]
add eax, 1
mov dword [esp + 0x660], eax
test edx, edx
mov dword [esp + eax*4 + 0x78], edx
jne 0x455954
add eax, 0xffffffff
mov edx, dword [esp + eax*4 + 0x78]
test edx, edx
je 0x455942
mov dword [esp + 0x660], eax
mov edx, dword [esp + 0x7c]
test edx, edx
jle 0x458016
xor eax, eax
add edx, edx
add eax, 1
test edx, edx
jg 0x455962
mov dword [esp + 0x7c], edx
test eax, eax
je 0x455a93
mov dword [esp + 0x49c], edx
mov edx, dword [esp + 0x660]
cmp edx, 1
jbe 0x455aae
lea esi, [edx - 1]
cmp esi, 5
jb 0x458005
mov dword [esp + 0x598], ebx
mov dword [esp + 0x59c], ebp
mov esi, 1
lea edi, [edx - 5]
mov dword [esp + 0x5e8], edi
mov edx, eax
neg edx
add edx, 0x20
mov ebp, dword [esp + esi*4 + 0x7c]
mov edi, dword [esp + esi*4 + 0x80]
mov ecx, edx
mov ebx, ebp
shr ebx, cl
or dword [esp + esi*4 + 0x498], ebx
mov ecx, eax
shl ebp, cl
mov ecx, edx
mov ebx, edi
shr ebx, cl
mov ecx, eax
shl edi, cl
or ebp, ebx
mov ebx, dword [esp + esi*4 + 0x84]
mov ecx, edx
mov dword [esp + esi*4 + 0x49c], ebp
mov ebp, ebx
shr ebp, cl
mov ecx, eax
shl ebx, cl
or edi, ebp
mov ecx, edx
mov dword [esp + esi*4 + 0x4a0], edi
mov edi, dword [esp + esi*4 + 0x88]
mov ebp, edi
shr ebp, cl
mov ecx, eax
shl edi, cl
or ebx, ebp
mov dword [esp + esi*4 + 0x4a4], ebx
mov ebx, dword [esp + 0x5e8]
mov dword [esp + esi*4 + 0x4a8], edi
add esi, 4
cmp esi, ebx
jbe 0x4559be
mov ebx, dword [esp + 0x598]
mov ebp, dword [esp + 0x59c]
mov edi, dword [esp + 0x660]
mov dword [esp + 0x598], ebx
mov dword [esp + 0x59c], ebp
mov ebp, dword [esp + esi*4 + 0x7c]
mov ecx, edx
mov ebx, ebp
shr ebx, cl
mov ecx, eax
shl ebp, cl
or dword [esp + esi*4 + 0x498], ebx
mov dword [esp + esi*4 + 0x49c], ebp
add esi, 1
cmp esi, edi
jb 0x455a59
mov ebx, dword [esp + 0x598]
mov ebp, dword [esp + 0x59c]
mov dword [esp + 0x660], edi
jmp 0x455aae
mov edx, dword [esp + 0x660]
test edx, edx
je 0x455aae
mov esi, dword [esp + edx*4 + 0x78]
mov dword [esp + edx*4 + 0x498], esi
add edx, 0xffffffff
jne 0x455a9e
mov edx, dword [esp + 0x654]
sub edx, eax
mov dword [esp + 0x654], edx
jmp 0x4572d7
test bl, 1
je 0x455ada
mov edx, dword [esp + 0x668]
sub edx, edi
mov dword [esp + 0x668], edx
jmp 0x455aef
mov edx, dword [esp + 0x668]
sub edx, dword [esp + 0x5ec]
mov dword [esp + 0x668], edx
mov ecx, edx
mov edx, dword [esp + 0x670]
lea edx, [edx + ecx]
cmp edx, 0xffffec9b
jge 0x455b14
mov eax, ebx
and eax, 8
mov dword [esp + 0x5e8], eax
jmp 0x457780
cmp edx, 0x1345
jle 0x455b2d
mov eax, ebx
and eax, 8
mov dword [esp + 0x5e8], eax
jmp 0x457780
mov edx, dword [esp + 0x670]
lea ecx, [edx - 0x36]
test ecx, ecx
jle 0x455b54
mov edx, dword [esp + 0x668]
mov ecx, dword [esp + 0x670]
lea esi, [edx + ecx - 0x36]
mov dword [esp + 0x668], esi
mov edx, dword [esp + 0x670]
cmp edx, 9
ja 0x457aa8
mov eax, dword [esp + 0x674]
test eax, eax
jle 0x458f44
mov edx, eax
xor eax, eax
mov dword [esp + 0x654], eax
add edx, edx
add eax, 1
test edx, edx
jg 0x455b7e
mov dword [esp + 0x654], eax
mov dword [esp + 0x674], edx
mov edx, dword [esp + 0x674]
mov dword [esp + 0x49c], edx
neg eax
add eax, 0x20
mov dword [esp + 0x654], eax
mov ecx, 1
mov dword [esp + 0x660], ecx
mov eax, dword [esp + 0x668]
test eax, eax
je 0x4572d7
mov eax, dword [esp + 0x660]
cmp eax, 4
jb 0x455cc2
mov eax, dword [esp + 0x4ac]
mov edx, dword [esp + 0x4a8]
shr eax, 0x1f
add edx, eax
mov dword [esp + 0x4a8], edx
cmp edx, eax
jae 0x455c89
mov eax, dword [esp + 0x4a4]
mov dword [esp + 0x498], 0
cmp eax, 0xffffffff
je 0x455c21
mov eax, 3
mov dword [esp + 0x660], eax
jmp 0x455c47
mov eax, 3
mov dword [esp + 0x660], eax
add eax, 0xffffffff
mov edx, dword [esp + eax*4 + 0x498]
cmp edx, 0xffffffff
je 0x455c2d
mov dword [esp + 0x660], eax
test eax, eax
je 0x455c5f
add dword [esp + eax*4 + 0x498], 1
lea edx, [esp + 0x49c]
mov dword [esp + 0xbc], edx
jmp 0x455cd0
add dword [esp + 0x654], 1
lea eax, [esp + 0x49c]
mov edx, 1
mov dword [esp + 0xbc], eax
mov dword [eax], 0x80000000
mov dword [esp + 0x660], edx
jmp 0x455cd0
test edx, edx
jne 0x45801d
mov eax, 4
mov dword [esp + 0x660], eax
add eax, 0xffffffff
mov edx, dword [esp + eax*4 + 0x498]
test edx, edx
je 0x455c9d
mov dword [esp + 0x660], eax
lea eax, [esp + 0x49c]
mov dword [esp + 0xbc], eax
jmp 0x455cd0
lea eax, [esp + 0x49c]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x668]
cmp eax, 0xfffffdea
jge 0x456274
cmp eax, 0xfffff000
jle 0x455d23
mov dword [esp + 0x598], ebx
mov dword [esp + 0x59c], ebp
xor ecx, ecx
mov esi, 3
mov dword [esp + 0x674], ecx
mov ebp, ecx
mov ecx, 0x1000
xor eax, eax
mov dword [esp + 0x664], eax
mov dword [esp + 0x670], eax
mov ebx, eax
jmp 0x456228
mov dword [esp + 0x598], ebx
mov dword [esp + 0x59c], ebp
xor ecx, ecx
mov esi, 3
mov dword [esp + 0x674], ecx
mov ebp, ecx
mov ecx, 0x1000
xor eax, eax
mov dword [esp + 0x664], eax
mov dword [esp + 0x670], eax
mov ebx, eax
add dword [esp + 0x668], ecx
test ebp, ebp
je 0x4561e2
movsx edx, word [esi*2 + 0x4bc9c0]
mov dword [esp + 0x664], edx
mov edi, esi
shl edi, 4
lea edx, [ebp + 4]
mov eax, dword [edi + 0x4bc6ac]
mov dword [esp + 0x228], eax
mov eax, dword [edi + 0x4bc6a8]
mov dword [esp + 0x22c], eax
mov eax, dword [edi + 0x4bc6a4]
mov dword [esp + 0x230], eax
mov eax, dword [edi + 0x4bc6a0]
mov dword [esp + 0x234], eax
mov dword [esp + 0x650], edx
mov edx, dword [esp + ebp*4 + 0x2e4]
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], eax
lea edi, [ebp + 3]
mov dword [esp + 0x5e8], edi
mov eax, dword [esp + 0x38]
mul dword [esp + 0x3c]
mov dword [esp + 0x44], eax
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x5e8]
mov dword [esp + eax*4 + 0x268], edx
mov edx, dword [esp + 0x40]
mov dword [esp + eax*4 + 0x264], edx
mov dword [esp + 0x66c], ecx
mov eax, 3
mov ecx, eax
mov edx, dword [esp + ebp*4 + 0x2e4]
mov dword [esp + edi*4 + 0x2a4], 0
mov dword [esp + 0x3a4], edx
mov edx, dword [esp + ecx*4 + 0x224]
mov dword [esp + 0x3a8], edx
mov eax, dword [esp + 0x3a4]
mul dword [esp + 0x3a8]
mov dword [esp + 0x3b0], eax
mov dword [esp + 0x3ac], edx
mov edx, dword [esp + edi*4 + 0x264]
add edx, dword [esp + 0x3b0]
cmp edx, dword [esp + 0x3b0]
mov dword [esp + edi*4 + 0x264], edx
mov edx, 0
adc edx, 0
add edi, 0xffffffff
add edx, dword [esp + 0x3ac]
mov dword [esp + edi*4 + 0x264], edx
add ecx, 0xffffffff
jne 0x455e0d
mov ecx, dword [esp + 0x66c]
mov dword [esp + edi*4 + 0x2a4], 0
add edi, 0xffffffff
test edi, edi
jl 0x455f0f
cmp edi, 6
jl 0x455ef8
xor eax, eax
mov dword [esp + edi*4 + 0x2a4], eax
mov dword [esp + edi*4 + 0x264], eax
mov dword [esp + edi*4 + 0x2a0], eax
mov dword [esp + edi*4 + 0x260], eax
mov dword [esp + edi*4 + 0x29c], eax
mov dword [esp + edi*4 + 0x25c], eax
mov dword [esp + edi*4 + 0x298], eax
mov dword [esp + edi*4 + 0x258], eax
mov dword [esp + edi*4 + 0x294], eax
mov dword [esp + edi*4 + 0x254], eax
add edi, 0xfffffffb
cmp edi, 6
jge 0x455ea8
xor eax, eax
mov dword [esp + edi*4 + 0x2a4], eax
mov dword [esp + edi*4 + 0x264], eax
add edi, 0xffffffff
test edi, edi
jge 0x455ef8
add ebp, 0xffffffff
je 0x455fdd
mov dword [esp + 0xb8], esi
mov edi, ebp
mov dword [esp + 0x66c], ecx
shl edi, 2
mov esi, 0x10
lea ecx, [edi + 0x10]
mov eax, dword [esp + ebp*4 + 0x2e4]
mov edx, dword [esp + esi + 0x224]
mov dword [esp + 0x610], eax
mov dword [esp + 0x614], edx
mov eax, dword [esp + 0x610]
mul dword [esp + 0x614]
mov dword [esp + 0x61c], eax
mov dword [esp + 0x618], edx
mov eax, dword [esp + ecx + 0x264]
add eax, dword [esp + 0x61c]
cmp eax, dword [esp + 0x61c]
mov edx, dword [esp + ecx + 0x260]
mov dword [esp + ecx + 0x264], eax
mov eax, 0
adc eax, 0
add eax, dword [esp + 0x618]
add edx, eax
mov dword [esp + ecx + 0x260], edx
cmp edx, eax
mov eax, 0
adc eax, 0
add dword [esp + ecx + 0x29c], eax
add ecx, 0xfffffffc
add esi, 0xfffffffc
jne 0x455f33
add edi, 0xfffffffc
add ebp, 0xffffffff
jne 0x455f2b
mov esi, dword [esp + 0xb8]
mov ecx, dword [esp + 0x66c]
add ebx, dword [esp + 0x664]
mov ebp, dword [esp + 0x650]
mov edx, dword [esp + ebp*4 + 0x264]
mov eax, dword [esp + 0x5e8]
mov dword [esp + ebp*4 + 0x2e4], edx
test eax, eax
je 0x45603f
mov edx, ebp
xor eax, eax
lea edx, [edx - 1]
add eax, dword [esp + edx*4 + 0x2a4]
mov edi, dword [esp + edx*4 + 0x264]
add edi, eax
cmp edi, eax
mov dword [esp + edx*4 + 0x2e4], edi
mov eax, 0
adc eax, 0
add edx, 0xffffffff
jne 0x45600b
mov eax, dword [esp + 0x650]
mov edx, dword [esp + eax*4 + 0x2e4]
test edx, edx
jne 0x456051
add ebp, 0xffffffff
mov eax, dword [esp + ebp*4 + 0x2e4]
test eax, eax
je 0x456043
mov eax, dword [esp + 0x2e8]
test eax, eax
jle 0x45613b
add eax, eax
mov dword [esp + 0x2e8], eax
add ebx, 0xffffffff
cmp ebp, 2
jb 0x45613b
lea eax, [ebp - 2]
cmp eax, 5
jb 0x458046
mov dword [esp + 0x66c], ecx
mov edx, 2
lea eax, [ebp - 5]
mov ecx, dword [esp + edx*4 + 0x2e4]
mov edi, dword [esp + edx*4 + 0x2e8]
shr ecx, 0x1f
shr edi, 0x1f
or dword [esp + edx*4 + 0x2e0], ecx
mov ecx, dword [esp + edx*4 + 0x2e4]
add ecx, ecx
or ecx, edi
mov edi, dword [esp + edx*4 + 0x2e8]
mov dword [esp + edx*4 + 0x2e4], ecx
mov ecx, dword [esp + edx*4 + 0x2ec]
add edi, edi
shr ecx, 0x1f
or edi, ecx
mov ecx, dword [esp + edx*4 + 0x2f0]
mov dword [esp + edx*4 + 0x2e8], edi
mov edi, dword [esp + edx*4 + 0x2ec]
add edi, edi
shr ecx, 0x1f
or edi, ecx
mov ecx, dword [esp + edx*4 + 0x2f0]
add ecx, ecx
mov dword [esp + edx*4 + 0x2ec], edi
mov dword [esp + edx*4 + 0x2f0], ecx
add edx, 4
cmp edx, eax
jbe 0x456090
mov ecx, dword [esp + 0x66c]
mov eax, dword [esp + edx*4 + 0x2e4]
mov edi, dword [esp + edx*4 + 0x2e4]
shr eax, 0x1f
or dword [esp + edx*4 + 0x2e0], eax
add edi, edi
mov dword [esp + edx*4 + 0x2e4], edi
add edx, 1
cmp edx, ebp
jbe 0x456113
mov eax, dword [esp + ebp*4 + 0x2e4]
test eax, eax
jne 0x456149
add ebp, 0xffffffff
cmp ebp, 4
jb 0x456228
mov eax, dword [esp + 0x2f8]
mov edx, dword [esp + 0x2f4]
shr eax, 0x1f
add edx, eax
mov dword [esp + 0x2f4], edx
cmp edx, eax
jae 0x4561c5
mov eax, dword [esp + 0x2f0]
mov dword [esp + 0x2e4], 0
cmp eax, 0xffffffff
je 0x45618e
mov ebp, 3
jmp 0x4561a6
mov ebp, 3
add ebp, 0xffffffff
mov eax, dword [esp + ebp*4 + 0x2e4]
cmp eax, 0xffffffff
je 0x456193
test ebp, ebp
je 0x4561b0
add dword [esp + ebp*4 + 0x2e4], 1
jmp 0x456228
mov dword [esp + 0x2e8], 0x80000000
add ebx, 1
mov ebp, 1
jmp 0x456228
test edx, edx
jne 0x45803c
mov ebp, 4
add ebp, 0xffffffff
mov eax, dword [esp + ebp*4 + 0x2e4]
test eax, eax
je 0x4561d2
jmp 0x456228
movsx ebx, word [esi*2 + 0x4bc9c0]
mov edi, esi
shl edi, 4
mov eax, dword [edi + 0x4bc6ac]
mov edx, dword [edi + 0x4bc6a8]
mov ebp, dword [edi + 0x4bc6a4]
mov dword [esp + 0x2e8], eax
mov eax, dword [edi + 0x4bc6a0]
mov dword [esp + 0x2ec], edx
mov dword [esp + 0x2f0], ebp
mov dword [esp + 0x2f4], eax
mov ebp, 4
mov edx, dword [esp + 0x668]
sar ecx, 1
add esi, 0xffffffff
test esi, esi
jl 0x45624c
mov eax, ecx
neg eax
cmp edx, eax
jg 0x45622f
mov dword [esp + 0x668], edx
jmp 0x455d58
mov dword [esp + 0x670], ebx
mov ebx, dword [esp + 0x598]
mov dword [esp + 0x674], ebp
mov ebp, dword [esp + 0x59c]
mov dword [esp + 0x668], edx
jmp 0x45682a
cmp eax, 0x216
jle 0x456813
cmp eax, 0x1000
jge 0x4562c0
mov dword [esp + 0x598], ebx
mov dword [esp + 0x59c], ebp
xor ecx, ecx
mov esi, 3
mov dword [esp + 0x674], ecx
mov ebp, ecx
mov ecx, 0x1000
xor eax, eax
mov dword [esp + 0x664], eax
mov dword [esp + 0x670], eax
mov ebx, eax
jmp 0x4567ce
mov dword [esp + 0x598], ebx
mov dword [esp + 0x59c], ebp
xor ecx, ecx
mov esi, 3
mov dword [esp + 0x674], ecx
mov ebp, ecx
mov ecx, 0x1000
xor eax, eax
mov dword [esp + 0x664], eax
mov dword [esp + 0x670], eax
mov ebx, eax
mov eax, dword [esp + 0x668]
sub eax, ecx
mov dword [esp + 0x668], eax
test ebp, ebp
je 0x456788
movsx edx, word [esi*2 + 0x4bc9dc]
mov dword [esp + 0x664], edx
mov edi, esi
shl edi, 4
lea edx, [ebp + 4]
mov eax, dword [edi + 0x4bc82c]
mov dword [esp + 0x228], eax
mov eax, dword [edi + 0x4bc828]
mov dword [esp + 0x22c], eax
mov eax, dword [edi + 0x4bc824]
mov dword [esp + 0x230], eax
mov eax, dword [edi + 0x4bc820]
mov dword [esp + 0x234], eax
mov dword [esp + 0x650], edx
mov edx, dword [esp + ebp*4 + 0x2e4]
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], eax
lea edi, [ebp + 3]
mov dword [esp + 0x66c], edi
mov eax, dword [esp + 0x18]
mul dword [esp + 0x1c]
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x66c]
mov dword [esp + eax*4 + 0xc4], edx
mov edx, dword [esp + 0x20]
mov dword [esp + eax*4 + 0xc0], edx
mov dword [esp + 0xb8], ecx
mov eax, 3
mov ecx, eax
mov edx, dword [esp + ebp*4 + 0x2e4]
mov dword [esp + edi*4 + 0x100], 0
mov dword [esp + 0x140], edx
mov edx, dword [esp + ecx*4 + 0x224]
mov dword [esp + 0x144], edx
mov eax, dword [esp + 0x140]
mul dword [esp + 0x144]
mov dword [esp + 0x14c], eax
mov dword [esp + 0x148], edx
mov edx, dword [esp + edi*4 + 0xc0]
add edx, dword [esp + 0x14c]
cmp edx, dword [esp + 0x14c]
mov dword [esp + edi*4 + 0xc0], edx
mov edx, 0
adc edx, 0
add edi, 0xffffffff
add edx, dword [esp + 0x148]
mov dword [esp + edi*4 + 0xc0], edx
add ecx, 0xffffffff
jne 0x4563b3
mov ecx, dword [esp + 0xb8]
mov dword [esp + edi*4 + 0x100], 0
add edi, 0xffffffff
test edi, edi
jl 0x4564b5
cmp edi, 6
jl 0x45649e
xor eax, eax
mov dword [esp + edi*4 + 0x100], eax
mov dword [esp + edi*4 + 0xc0], eax
mov dword [esp + edi*4 + 0xfc], eax
mov dword [esp + edi*4 + 0xbc], eax
mov dword [esp + edi*4 + 0xf8], eax
mov dword [esp + edi*4 + 0xb8], eax
mov dword [esp + edi*4 + 0xf4], eax
mov dword [esp + edi*4 + 0xb4], eax
mov dword [esp + edi*4 + 0xf0], eax
mov dword [esp + edi*4 + 0xb0], eax
add edi, 0xfffffffb
cmp edi, 6
jge 0x45644e
xor eax, eax
mov dword [esp + edi*4 + 0x100], eax
mov dword [esp + edi*4 + 0xc0], eax
add edi, 0xffffffff
test edi, edi
jge 0x45649e
add ebp, 0xffffffff
je 0x456583
mov dword [esp + 0x5e8], esi
mov edi, ebp
mov dword [esp + 0xb8], ecx
shl edi, 2
mov esi, 0x10
lea ecx, [edi + 0x10]
mov eax, dword [esp + ebp*4 + 0x2e4]
mov edx, dword [esp + esi + 0x224]
mov dword [esp + 0x5c0], eax
mov dword [esp + 0x5c4], edx
mov eax, dword [esp + 0x5c0]
mul dword [esp + 0x5c4]
mov dword [esp + 0x5cc], eax
mov dword [esp + 0x5c8], edx
mov eax, dword [esp + ecx + 0xc0]
add eax, dword [esp + 0x5cc]
cmp eax, dword [esp + 0x5cc]
mov edx, dword [esp + ecx + 0xbc]
mov dword [esp + ecx + 0xc0], eax
mov eax, 0
adc eax, 0
add eax, dword [esp + 0x5c8]
add edx, eax
mov dword [esp + ecx + 0xbc], edx
cmp edx, eax
mov eax, 0
adc eax, 0
add dword [esp + ecx + 0xf8], eax
add ecx, 0xfffffffc
add esi, 0xfffffffc
jne 0x4564d9
add edi, 0xfffffffc
add ebp, 0xffffffff
jne 0x4564d1
mov esi, dword [esp + 0x5e8]
mov ecx, dword [esp + 0xb8]
add ebx, dword [esp + 0x664]
mov ebp, dword [esp + 0x650]
mov edx, dword [esp + ebp*4 + 0xc0]
mov eax, dword [esp + 0x66c]
mov dword [esp + ebp*4 + 0x2e4], edx
test eax, eax
je 0x4565e5
mov edx, ebp
xor eax, eax
lea edx, [edx - 1]
add eax, dword [esp + edx*4 + 0x100]
mov edi, dword [esp + edx*4 + 0xc0]
add edi, eax
cmp edi, eax
mov dword [esp + edx*4 + 0x2e4], edi
mov eax, 0
adc eax, 0
add edx, 0xffffffff
jne 0x4565b1
mov eax, dword [esp + 0x650]
mov edx, dword [esp + eax*4 + 0x2e4]
test edx, edx
jne 0x4565f7
add ebp, 0xffffffff
mov eax, dword [esp + ebp*4 + 0x2e4]
test eax, eax
je 0x4565e9
mov eax, dword [esp + 0x2e8]
test eax, eax
jle 0x4566e1
add eax, eax
mov dword [esp + 0x2e8], eax
add ebx, 0xffffffff
cmp ebp, 2
jb 0x4566e1
lea eax, [ebp - 2]
cmp eax, 5
jb 0x45805a
mov dword [esp + 0xb8], ecx
mov edx, 2
lea eax, [ebp - 5]
mov ecx, dword [esp + edx*4 + 0x2e4]
mov edi, dword [esp + edx*4 + 0x2e8]
shr ecx, 0x1f
shr edi, 0x1f
or dword [esp + edx*4 + 0x2e0], ecx
mov ecx, dword [esp + edx*4 + 0x2e4]
add ecx, ecx
or ecx, edi
mov edi, dword [esp + edx*4 + 0x2e8]
mov dword [esp + edx*4 + 0x2e4], ecx
mov ecx, dword [esp + edx*4 + 0x2ec]
add edi, edi
shr ecx, 0x1f
or edi, ecx
mov ecx, dword [esp + edx*4 + 0x2f0]
mov dword [esp + edx*4 + 0x2e8], edi
mov edi, dword [esp + edx*4 + 0x2ec]
add edi, edi
shr ecx, 0x1f
or edi, ecx
mov ecx, dword [esp + edx*4 + 0x2f0]
add ecx, ecx
mov dword [esp + edx*4 + 0x2ec], edi
mov dword [esp + edx*4 + 0x2f0], ecx
add edx, 4
cmp edx, eax
jbe 0x456636
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + edx*4 + 0x2e4]
mov edi, dword [esp + edx*4 + 0x2e4]
shr eax, 0x1f
or dword [esp + edx*4 + 0x2e0], eax
add edi, edi
mov dword [esp + edx*4 + 0x2e4], edi
add edx, 1
cmp edx, ebp
jbe 0x4566b9
mov eax, dword [esp + ebp*4 + 0x2e4]
test eax, eax
jne 0x4566ef
add ebp, 0xffffffff
cmp ebp, 4
jb 0x4567ce
mov eax, dword [esp + 0x2f8]
mov edx, dword [esp + 0x2f4]
shr eax, 0x1f
add edx, eax
mov dword [esp + 0x2f4], edx
cmp edx, eax
jae 0x45676b
mov eax, dword [esp + 0x2f0]
mov dword [esp + 0x2e4], 0
cmp eax, 0xffffffff
je 0x456734
mov ebp, 3
jmp 0x45674c
mov ebp, 3
add ebp, 0xffffffff
mov eax, dword [esp + ebp*4 + 0x2e4]
cmp eax, 0xffffffff
je 0x456739
test ebp, ebp
je 0x456756
add dword [esp + ebp*4 + 0x2e4], 1
jmp 0x4567ce
mov dword [esp + 0x2e8], 0x80000000
add ebx, 1
mov ebp, 1
jmp 0x4567ce
test edx, edx
jne 0x458050
mov ebp, 4
add ebp, 0xffffffff
mov eax, dword [esp + ebp*4 + 0x2e4]
test eax, eax
je 0x456778
jmp 0x4567ce
movsx ebx, word [esi*2 + 0x4bc9dc]
mov edi, esi
shl edi, 4
mov eax, dword [edi + 0x4bc82c]
mov edx, dword [edi + 0x4bc828]
mov ebp, dword [edi + 0x4bc824]
mov dword [esp + 0x2e8], eax
mov eax, dword [edi + 0x4bc820]
mov dword [esp + 0x2ec], edx
mov dword [esp + 0x2f0], ebp
mov dword [esp + 0x2f4], eax
mov ebp, 4
mov eax, dword [esp + 0x668]
sar ecx, 1
add esi, 0xffffffff
test esi, esi
jl 0x4567ee
cmp eax, ecx
jl 0x4567d5
mov dword [esp + 0x668], eax
jmp 0x4562f5
mov dword [esp + 0x670], ebx
mov ebx, dword [esp + 0x598]
mov dword [esp + 0x674], ebp
mov ebp, dword [esp + 0x59c]
mov dword [esp + 0x668], eax
jmp 0x45682a
xor eax, eax
mov dword [esp + 0x674], eax
mov dword [esp + 0x664], eax
mov dword [esp + 0x670], eax
mov eax, dword [esp + 0x668]
cmp eax, 0xffffffe5
jl 0x456eb7
test eax, eax
jge 0x456e06
movsx edx, word [eax*2 + 0x4bc9be]
mov dword [esp + 0xb8], edx
lea esi, [esp + 0x55c]
mov dword [esp + 0x66c], esi
shl eax, 4
mov ecx, dword [eax + 0x4bc69c]
mov edi, dword [eax + 0x4bc698]
mov edx, dword [eax + 0x4bc694]
mov eax, dword [eax + 0x4bc690]
mov dword [esp + 0x560], edi
mov dword [esi], ecx
mov dword [esp + 0x564], edx
test eax, eax
mov dword [esp + 0x568], eax
jne 0x458553
mov eax, 4
mov dword [esp + 0x668], eax
mov edx, eax
mov eax, dword [esp + edx*4 + 0x554]
add edx, 0xffffffff
test eax, eax
je 0x4568a7
mov dword [esp + 0x668], edx
mov edx, dword [esp + 0x674]
test edx, edx
je 0x456b66
mov edi, edx
mov ecx, dword [esp + 0x668]
mov dword [esp + 0x48], eax
mov eax, dword [esp + edi*4 + 0x2e4]
mov dword [esp + 0x4c], eax
lea edx, [edi + ecx]
mov dword [esp + 0x5e8], edx
lea esi, [edi + ecx - 1]
mov dword [esp + 0x484], esi
mov eax, dword [esp + 0x48]
mul dword [esp + 0x4c]
mov dword [esp + 0x54], eax
mov dword [esp + 0x50], edx
mov eax, dword [esp + 0x484]
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
mov esi, dword [esp + 0x674]
shl eax, 2
mov dword [esp + eax + 0x328], edx
add esi, 0xffffffff
mov dword [esp + eax + 0x324], ecx
je 0x4569e4
mov eax, dword [esp + 0x674]
mov edi, dword [esp + 0x668]
mov esi, dword [esp + 0x484]
lea ecx, [eax - 1]
mov eax, dword [esp + edi*4 + 0x558]
mov edx, dword [esp + ecx*4 + 0x2e4]
mov dword [esp + esi*4 + 0x364], 0
mov dword [esp + 0x3b4], eax
mov dword [esp + 0x3b8], edx
mov eax, dword [esp + 0x3b4]
mul dword [esp + 0x3b8]
mov dword [esp + 0x3c0], eax
mov dword [esp + 0x3bc], edx
mov eax, dword [esp + esi*4 + 0x324]
add eax, dword [esp + 0x3c0]
cmp eax, dword [esp + 0x3c0]
mov dword [esp + esi*4 + 0x324], eax
mov edx, 0
adc edx, 0
add esi, 0xffffffff
mov eax, esi
shl eax, 2
add edx, dword [esp + 0x3bc]
mov dword [esp + eax + 0x324], edx
add ecx, 0xffffffff
jne 0x456950
mov dword [esp + 0x668], edi
mov dword [esp + 0x484], esi
mov dword [esp + eax + 0x364], 0
mov eax, dword [esp + 0x484]
add eax, 0xffffffff
test eax, eax
mov dword [esp + 0x484], eax
jl 0x456a80
cmp eax, 6
jl 0x456a62
mov edx, eax
xor eax, eax
mov dword [esp + edx*4 + 0x364], eax
mov dword [esp + edx*4 + 0x324], eax
mov dword [esp + edx*4 + 0x360], eax
mov dword [esp + edx*4 + 0x320], eax
mov dword [esp + edx*4 + 0x35c], eax
mov dword [esp + edx*4 + 0x31c], eax
mov dword [esp + edx*4 + 0x358], eax
mov dword [esp + edx*4 + 0x318], eax
mov dword [esp + edx*4 + 0x354], eax
mov dword [esp + edx*4 + 0x314], eax
add edx, 0xfffffffb
cmp edx, 6
jge 0x456a0b
mov dword [esp + 0x484], edx
mov edx, dword [esp + 0x484]
xor eax, eax
mov dword [esp + edx*4 + 0x364], eax
mov dword [esp + edx*4 + 0x324], eax
add edx, 0xffffffff
test edx, edx
jge 0x456a69
mov eax, dword [esp + 0x668]
add eax, 0xffffffff
mov dword [esp + 0x668], eax
je 0x458072
mov esi, eax
mov edi, dword [esp + 0x674]
mov dword [esp + 0x598], ebx
mov dword [esp + 0x59c], ebp
mov ebp, edi
test edi, edi
je 0x458348
mov eax, esi
shl eax, 2
mov ebx, ebp
shl ebx, 2
lea ecx, [eax + ebp*4]
mov eax, dword [esp + esi*4 + 0x558]
mov edx, dword [esp + ebx + 0x2e4]
mov dword [esp + 0x620], eax
mov dword [esp + 0x624], edx
mov eax, dword [esp + 0x620]
mul dword [esp + 0x624]
mov dword [esp + 0x62c], eax
mov dword [esp + 0x628], edx
mov eax, dword [esp + ecx + 0x324]
add eax, dword [esp + 0x62c]
cmp eax, dword [esp + 0x62c]
mov edx, dword [esp + ecx + 0x320]
mov dword [esp + ecx + 0x324], eax
mov eax, 0
adc eax, 0
add ebx, 0xfffffffc
add eax, dword [esp + 0x628]
add edx, eax
cmp edx, eax
mov eax, 0
adc eax, 0
mov dword [esp + ecx + 0x320], edx
add dword [esp + ecx + 0x35c], eax
add ecx, 0xfffffffc
add ebp, 0xffffffff
jne 0x456ac5
add esi, 0xffffffff
jne 0x456aae
jmp 0x458064
mov ecx, dword [esp + 0x668]
mov edi, dword [esp + 0x660]
mov dword [esp + 0x70], eax
lea edx, [edi + ecx]
lea esi, [edi + ecx - 1]
mov dword [esp + 0x484], edx
mov edx, dword [esp + edi*4 + 0x498]
mov dword [esp + 0x5d4], esi
mov dword [esp + 0x74], edx
mov eax, dword [esp + 0x74]
mul dword [esp + 0x70]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x68], edx
mov eax, dword [esp + 0x5d4]
mov edx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x68]
mov esi, dword [esp + 0x668]
shl eax, 2
mov dword [esp + eax + 0x51c], edx
add esi, 0xffffffff
mov dword [esp + eax + 0x518], ecx
je 0x456c84
mov eax, dword [esp + 0x668]
mov esi, dword [esp + 0x660]
mov edi, dword [esp + 0x5d4]
lea ecx, [eax - 1]
mov eax, dword [esp + esi*4 + 0x498]
mov edx, dword [esp + ecx*4 + 0x558]
mov dword [esp + edi*4 + 0x4d8], 0
mov dword [esp + 0x5a0], eax
mov dword [esp + 0x5a4], edx
mov eax, dword [esp + 0x5a0]
mul dword [esp + 0x5a4]
mov dword [esp + 0x5ac], eax
mov dword [esp + 0x5a8], edx
mov eax, dword [esp + edi*4 + 0x518]
add eax, dword [esp + 0x5ac]
cmp eax, dword [esp + 0x5ac]
mov dword [esp + edi*4 + 0x518], eax
mov edx, 0
adc edx, 0
add edi, 0xffffffff
mov eax, edi
shl eax, 2
add edx, dword [esp + 0x5a8]
mov dword [esp + eax + 0x518], edx
add ecx, 0xffffffff
jne 0x456bf0
mov dword [esp + 0x660], esi
mov dword [esp + 0x5d4], edi
mov dword [esp + eax + 0x4d8], 0
mov eax, dword [esp + 0x5d4]
add eax, 0xffffffff
test eax, eax
mov dword [esp + 0x5d4], eax
jl 0x456d20
cmp eax, 6
jl 0x456d02
mov edx, eax
xor eax, eax
mov dword [esp + edx*4 + 0x4d8], eax
mov dword [esp + edx*4 + 0x518], eax
mov dword [esp + edx*4 + 0x4d4], eax
mov dword [esp + edx*4 + 0x514], eax
mov dword [esp + edx*4 + 0x4d0], eax
mov dword [esp + edx*4 + 0x510], eax
mov dword [esp + edx*4 + 0x4cc], eax
mov dword [esp + edx*4 + 0x50c], eax
mov dword [esp + edx*4 + 0x4c8], eax
mov dword [esp + edx*4 + 0x508], eax
add edx, 0xfffffffb
cmp edx, 6
jge 0x456cab
mov dword [esp + 0x5d4], edx
mov edx, dword [esp + 0x5d4]
xor eax, eax
mov dword [esp + edx*4 + 0x4d8], eax
mov dword [esp + edx*4 + 0x518], eax
add edx, 0xffffffff
test edx, edx
jge 0x456d09
mov eax, dword [esp + 0x660]
add eax, 0xffffffff
mov dword [esp + 0x660], eax
je 0x458372
mov esi, dword [esp + 0x668]
mov edi, eax
mov dword [esp + 0x598], ebx
mov dword [esp + 0x59c], ebp
mov ebp, esi
test esi, esi
je 0x458537
mov eax, edi
shl eax, 2
mov ebx, ebp
shl ebx, 2
lea ecx, [eax + ebp*4]
mov eax, dword [esp + edi*4 + 0x498]
mov edx, dword [esp + ebx + 0x558]
mov dword [esp + 0x640], eax
mov dword [esp + 0x644], edx
mov eax, dword [esp + 0x640]
mul dword [esp + 0x644]
mov dword [esp + 0x64c], eax
mov dword [esp + 0x648], edx
mov eax, dword [esp + ecx + 0x518]
add eax, dword [esp + 0x64c]
cmp eax, dword [esp + 0x64c]
mov edx, dword [esp + ecx + 0x514]
mov dword [esp + ecx + 0x518], eax
mov eax, 0
adc eax, 0
add ebx, 0xfffffffc
add eax, dword [esp + 0x648]
add edx, eax
cmp edx, eax
mov eax, 0
adc eax, 0
mov dword [esp + ecx + 0x514], edx
add dword [esp + ecx + 0x4d0], eax
add ecx, 0xfffffffc
add ebp, 0xffffffff
jne 0x456d65
add edi, 0xffffffff
jne 0x456d4e
jmp 0x458364
test eax, eax
jl 0x456eb7
cmp eax, 0x37
jl 0x456ea9
mov edx, eax
mov ecx, edx
sar ecx, 3
lea esi, [ecx + ecx]
movzx eax, word [esi + 0x4bc902]
shr eax, 5
cmp eax, edx
jg 0x456e33
lea esi, [ecx + ecx + 2]
movzx edx, word [esi + 0x4bc900]
mov ecx, dword [esp + 0x668]
mov eax, edx
and eax, 0x1f
shr edx, 5
sub ecx, edx
movsx esi, word [eax*2 + 0x4bc9e4]
mov dword [esp + 0x668], ecx
mov dword [esp + 0x664], esi
shl eax, 4
mov edi, dword [eax + 0x4bc86c]
mov edx, dword [eax + 0x4bc868]
mov dword [esp + 0x228], edi
mov dword [esp + 0x22c], edx
mov edx, dword [eax + 0x4bc864]
mov eax, dword [eax + 0x4bc860]
mov dword [esp + 0x230], edx
mov dword [esp + 0x234], eax
mov eax, 4
mov dword [esp + 0x650], eax
jmp 0x456f3a
xor eax, eax
mov dword [esp + 0x650], eax
jmp 0x456f3a
mov edx, eax
neg edx
mov ecx, edx
sar ecx, 3
movzx eax, word [ecx*2 + 0x4bc780]
mov esi, eax
shr esi, 5
cmp esi, edx
jge 0x456ede
movzx eax, word [ecx*2 + 0x4bc782]
mov esi, eax
shr esi, 5
add dword [esp + 0x668], esi
and eax, 0x1f
movsx edx, word [eax*2 + 0x4bc9c8]
mov dword [esp + 0x664], edx
shl eax, 4
mov ecx, dword [eax + 0x4bc6ec]
mov esi, dword [eax + 0x4bc6e8]
mov edi, dword [eax + 0x4bc6e4]
mov eax, dword [eax + 0x4bc6e0]
mov dword [esp + 0x228], ecx
mov dword [esp + 0x22c], esi
mov dword [esp + 0x230], edi
mov dword [esp + 0x234], eax
mov eax, 4
mov dword [esp + 0x650], eax
mov eax, dword [esp + 0x668]
cmp eax, 0x37
je 0x458e33
lea edx, [eax - 0x1b]
mov dword [esp + 0x150], edx
test edx, edx
jle 0x458e1e
mov ecx, edx
movsx eax, word [ecx*2 + 0x4bcd5e]
mov edx, dword [ecx*8 + 0x4bcb7c]
mov esi, dword [ecx*8 + 0x4bcb78]
mov dword [esp + 0x5e8], eax
test esi, esi
mov dword [esp + 0x3c8], edx
mov dword [esp + 0x3cc], esi
jne 0x458e01
mov eax, 2
mov dword [esp + 0x484], eax
add eax, 0xffffffff
mov edx, dword [esp + eax*4 + 0x3c4]
test edx, edx
je 0x456f9d
mov dword [esp + 0x484], eax
mov eax, 0x1b
mov dword [esp + 0x668], eax
mov esi, dword [esp + 0x668]
movsx eax, word [esi*2 + 0x4bcd5e]
mov edx, dword [esi*8 + 0x4bcb7c]
mov edi, dword [esi*8 + 0x4bcb78]
mov dword [esp + 0xb8], eax
test edi, edi
lea ecx, [esp + 0x55c]
mov dword [esp + 0x66c], ecx
mov dword [esp + 0x560], edi
mov dword [ecx], edx
jne 0x458de9
mov eax, 2
mov dword [esp + 0x668], eax
mov edx, eax
mov eax, dword [esp + edx*4 + 0x554]
add edx, 0xffffffff
test eax, eax
je 0x45700f
mov dword [esp + 0x668], edx
mov edx, dword [esp + 0x150]
test edx, edx
jle 0x458819
mov edi, dword [esp + 0x484]
mov ecx, dword [esp + 0x668]
mov dword [esp + 0x58], eax
mov eax, dword [esp + edi*4 + 0x3c4]
mov dword [esp + 0x5c], eax
lea edx, [edi + ecx]
mov dword [esp + 0x150], edx
lea esi, [edi + ecx - 1]
mov dword [esp + 0x5ec], esi
mov dword [esp + 0x5d4], esi
mov eax, dword [esp + 0x58]
mul dword [esp + 0x5c]
mov dword [esp + 0x64], eax
mov dword [esp + 0x60], edx
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x5ec]
mov edx, dword [esp + 0x60]
mov esi, dword [esp + 0x484]
add esi, 0xffffffff
mov dword [esp + ecx*4 + 0x408], eax
mov dword [esp + ecx*4 + 0x404], edx
je 0x458dc3
mov eax, dword [esp + 0x484]
mov edi, dword [esp + 0x668]
mov esi, dword [esp + 0x5d4]
lea ecx, [eax - 1]
mov eax, dword [esp + edi*4 + 0x558]
mov edx, dword [esp + ecx*4 + 0x3c4]
mov dword [esp + esi*4 + 0x444], 0
mov dword [esp + 0x488], eax
mov dword [esp + 0x48c], edx
mov eax, dword [esp + 0x488]
mul dword [esp + 0x48c]
mov dword [esp + 0x494], eax
mov dword [esp + 0x490], edx
mov eax, dword [esp + esi*4 + 0x404]
add eax, dword [esp + 0x494]
cmp eax, dword [esp + 0x494]
mov dword [esp + esi*4 + 0x404], eax
mov edx, 0
adc edx, 0
add esi, 0xffffffff
mov eax, esi
shl eax, 2
add edx, dword [esp + 0x490]
mov dword [esp + eax + 0x404], edx
add ecx, 0xffffffff
jne 0x4570c1
mov dword [esp + 0x668], edi
mov dword [esp + 0x5d4], esi
mov dword [esp + eax + 0x444], 0
mov eax, dword [esp + 0x5d4]
add eax, 0xffffffff
test eax, eax
mov dword [esp + 0x5d4], eax
jl 0x4571f1
cmp eax, 6
jl 0x4571d3
mov edx, eax
xor eax, eax
mov dword [esp + edx*4 + 0x444], eax
mov dword [esp + edx*4 + 0x404], eax
mov dword [esp + edx*4 + 0x440], eax
mov dword [esp + edx*4 + 0x400], eax
mov dword [esp + edx*4 + 0x43c], eax
mov dword [esp + edx*4 + 0x3fc], eax
mov dword [esp + edx*4 + 0x438], eax
mov dword [esp + edx*4 + 0x3f8], eax
mov dword [esp + edx*4 + 0x434], eax
mov dword [esp + edx*4 + 0x3f4], eax
add edx, 0xfffffffb
cmp edx, 6
jge 0x45717c
mov dword [esp + 0x5d4], edx
mov edx, dword [esp + 0x5d4]
xor eax, eax
mov dword [esp + edx*4 + 0x444], eax
mov dword [esp + edx*4 + 0x404], eax
add edx, 0xffffffff
test edx, edx
jge 0x4571da
mov eax, dword [esp + 0x668]
add eax, 0xffffffff
mov dword [esp + 0x668], eax
je 0x458579
mov esi, eax
mov edi, dword [esp + 0x484]
mov dword [esp + 0x598], ebx
mov dword [esp + 0x59c], ebp
mov ebp, edi
test edi, edi
je 0x458da7
mov eax, esi
shl eax, 2
mov ebx, ebp
shl ebx, 2
lea ecx, [eax + ebp*4]
mov eax, dword [esp + esi*4 + 0x558]
mov edx, dword [esp + ebx + 0x3c4]
mov dword [esp + 0x630], eax
mov dword [esp + 0x634], edx
mov eax, dword [esp + 0x630]
mul dword [esp + 0x634]
mov dword [esp + 0x63c], eax
mov dword [esp + 0x638], edx
mov eax, dword [esp + ecx + 0x404]
add eax, dword [esp + 0x63c]
cmp eax, dword [esp + 0x63c]
mov edx, dword [esp + ecx + 0x400]
mov dword [esp + ecx + 0x404], eax
mov eax, 0
adc eax, 0
add ebx, 0xfffffffc
add eax, dword [esp + 0x638]
add edx, eax
cmp edx, eax
mov eax, 0
adc eax, 0
mov dword [esp + ecx + 0x400], edx
add dword [esp + ecx + 0x43c], eax
add ecx, 0xfffffffc
add ebp, 0xffffffff
jne 0x457236
add esi, 0xffffffff
jne 0x45721f
jmp 0x45856b
mov eax, dword [esp + 0x5e0]
mov edx, dword [esp + 0x5d0]
shr eax, 0x16
and eax, 7
or edx, eax
jne 0x4572f4
mov eax, 6
test al, 4
je 0x457318
test al, 2
je 0x45730a
mov edx, 0xaaaa
mov dword [esp + 0x650], edx
jmp 0x457345
mov edx, 0xfa
mov dword [esp + 0x650], edx
jmp 0x457345
test al, 2
je 0x45732a
mov edx, 0xfa00
mov dword [esp + 0x650], edx
jmp 0x457345
test al, 1
je 0x457339
xor edx, edx
mov dword [esp + 0x650], edx
jmp 0x457345
mov edx, 0xa8a8
mov dword [esp + 0x650], edx
cmp eax, 2
je 0x45734f
cmp eax, 4
jne 0x457356
mov eax, 1
jmp 0x457358
xor eax, eax
mov esi, dword [esp + 0x654]
mov ecx, ebx
and ecx, 8
mov dword [esp + 0x5e8], ecx
lea esi, [esi + 0x406e]
xor edx, edx
test ecx, ecx
setne dl
cmp esi, 0x71
mov dword [esp + 0x5ec], edx
jle 0x45738b
mov esi, 0x71
jmp 0x457393
test esi, esi
jl 0x457780
mov edi, esi
sar edi, 5
mov dword [esp + 0x66c], edi
and esi, 0x1f
xor edx, edx
cmp edx, esi
adc edx, 0
lea edi, [edi + edx]
mov dword [esp + 0x5d0], edi
mov dword [esp + 0x670], edx
mov edx, dword [esp + 0x660]
cmp edx, edi
jae 0x4573cd
test eax, eax
je 0x45774e
mov eax, edx
mov edx, edi
mov dword [esp + 0x674], eax
test edx, edx
mov dword [esp + 0x660], edx
je 0x4576b3
mov eax, edi
mov edx, dword [esp + eax*4 + 0x498]
mov edi, dword [esp + 0x670]
mov dword [esp + 0x150], edx
test edi, edi
je 0x4574f8
neg esi
lea eax, [esi + 0x1f]
mov ecx, eax
mov edi, edx
shr edi, cl
add esi, 0x20
mov ecx, esi
and edi, 1
mov dword [esp + 0x484], edi
mov edi, 1
shl edi, cl
mov ecx, esi
mov dword [esp + 0x668], edi
mov edi, edx
shr edi, cl
mov ecx, eax
mov esi, 1
shl esi, cl
mov eax, dword [esp + 0x674]
and edi, 1
add esi, 0xffffffff
and esi, edx
mov edx, dword [esp + 0x5d0]
or dword [esp + 0x65c], esi
cmp eax, edx
mov dword [esp + 0x5d4], edi
jbe 0x4575e7
mov edx, dword [esp + 0x670]
mov eax, dword [esp + 0x66c]
mov ecx, dword [esp + 0x674]
lea eax, [eax + edx + 1]
cmp eax, ecx
ja 0x4575e7
mov edx, ecx
sub edx, eax
cmp edx, 6
jb 0x4574d0
mov edx, ecx
mov ecx, dword [esp + 0x65c]
lea edx, [edx - 6]
or ecx, dword [esp + eax*4 + 0x498]
or ecx, dword [esp + eax*4 + 0x49c]
or ecx, dword [esp + eax*4 + 0x4a0]
or ecx, dword [esp + eax*4 + 0x4a4]
or ecx, dword [esp + eax*4 + 0x4a8]
add eax, 5
cmp eax, edx
jbe 0x45749f
mov dword [esp + 0x65c], ecx
mov edx, dword [esp + 0x65c]
mov ecx, dword [esp + 0x674]
or edx, dword [esp + eax*4 + 0x498]
add eax, 1
cmp eax, ecx
jbe 0x4574de
mov dword [esp + 0x65c], edx
jmp 0x4575e7
mov eax, edx
mov edx, dword [esp + 0x5d0]
mov esi, dword [esp + edx*4 + 0x49c]
mov edi, dword [esp + 0x66c]
and eax, 1
mov dword [esp + 0x5d4], eax
mov eax, dword [esp + 0x670]
mov ecx, esi
shr ecx, 0x1f
add esi, esi
or dword [esp + 0x65c], esi
mov dword [esp + 0x484], ecx
lea edx, [edi + eax + 1]
mov eax, dword [esp + 0x674]
cmp eax, edx
jbe 0x4575db
mov edx, dword [esp + 0x670]
mov eax, edi
mov ecx, dword [esp + 0x674]
lea eax, [eax + edx + 2]
cmp eax, ecx
ja 0x458e8e
mov edx, ecx
sub edx, eax
cmp edx, 6
jb 0x4575aa
mov edx, ecx
mov ecx, dword [esp + 0x65c]
lea edx, [edx - 6]
or ecx, dword [esp + eax*4 + 0x498]
or ecx, dword [esp + eax*4 + 0x49c]
or ecx, dword [esp + eax*4 + 0x4a0]
or ecx, dword [esp + eax*4 + 0x4a4]
or ecx, dword [esp + eax*4 + 0x4a8]
add eax, 5
cmp eax, edx
jbe 0x457579
mov dword [esp + 0x65c], ecx
mov edx, dword [esp + 0x65c]
mov ecx, dword [esp + 0x674]
or edx, dword [esp + eax*4 + 0x498]
add eax, 1
cmp eax, ecx
jbe 0x4575b8
mov dword [esp + 0x65c], edx
mov eax, 1
mov dword [esp + 0x668], eax
jmp 0x4575e7
mov eax, 1
mov dword [esp + 0x668], eax
mov esi, dword [esp + 0x65c]
mov edx, dword [esp + 0x5ec]
mov edi, dword [esp + 0x484]
xor eax, eax
test esi, esi
setne al
shl eax, 2
lea ecx, [eax + edx*8]
mov eax, dword [esp + 0x5d4]
lea eax, [edi + eax*2]
add ecx, eax
mov eax, dword [esp + 0x650]
shr eax, cl
test al, 1
je 0x45774e
mov eax, dword [esp + 0x150]
mov edx, dword [esp + 0x668]
add eax, edx
mov dword [esp + 0x150], eax
cmp eax, edx
jae 0x4576e0
mov edx, dword [esp + 0x5d0]
mov esi, dword [esp + 0x670]
mov ecx, dword [esp + 0x66c]
mov dword [esp + edx*4 + 0x498], eax
mov dword [esp + 0x498], 0
lea edx, [ecx + esi - 1]
mov dword [esp + 0x660], edx
shl edx, 2
mov eax, dword [esp + edx + 0x498]
cmp eax, 0xffffffff
jne 0x4576a8
mov ecx, dword [esp + 0x660]
add ecx, 0xffffffff
mov edx, ecx
shl edx, 2
mov eax, dword [esp + edx + 0x498]
cmp eax, 0xffffffff
je 0x45768d
mov dword [esp + 0x660], ecx
mov ecx, dword [esp + 0x660]
test ecx, ecx
jne 0x4576d4
add dword [esp + 0x654], 1
mov eax, 1
mov dword [esp + 0x660], eax
mov dword [esp + 0x49c], 0x80000000
jmp 0x45774e
add eax, 1
mov dword [esp + edx + 0x498], eax
jmp 0x45774e
mov eax, dword [esp + 0x670]
test eax, eax
je 0x457712
mov eax, edx
mov edx, dword [esp + 0x150]
mov ecx, dword [esp + 0x5d0]
add eax, 0xffffffff
not eax
and edx, eax
mov dword [esp + ecx*4 + 0x498], edx
mov dword [esp + 0x150], edx
jmp 0x457727
mov eax, dword [esp + 0x150]
mov edx, dword [esp + 0x5d0]
mov dword [esp + edx*4 + 0x498], eax
mov eax, dword [esp + 0x150]
test eax, eax
jne 0x45774e
mov eax, dword [esp + 0x660]
mov edx, dword [esp + eax*4 + 0x494]
add eax, 0xffffffff
test edx, edx
je 0x457739
mov dword [esp + 0x660], eax
mov eax, dword [esp + 0x654]
cmp eax, 0x4000
jg 0x457780
cmp eax, 0xffffc002
jg 0x457859
cmp eax, 0xffffbf93
jl 0x457780
mov eax, dword [esp + 0x5e0]
test eax, 0x10000000
je 0x457840
test ebx, 0x80
je 0x4577e4
mov eax, dword [esp + 0x5e8]
test eax, eax
je 0x45779a
mov esi, 0x4bd050
jmp 0x45779f
mov esi, 0x4bd040
mov edi, dword [esp + 0x5e0]
mov eax, dword [esi]
mov edx, dword [esi + 4]
mov ecx, dword [esi + 8]
mov esi, dword [esi + 0xc]
test edi, 0x4000
mov dword [esp + 0x5b0], eax
mov dword [esp + 0x5b4], edx
mov dword [esp + 0x5b8], ecx
mov dword [esp + 0x5bc], esi
je 0x45799c
or ebx, 0x9000000
jmp 0x45799c
mov eax, dword [esp + 0x5e8]
test eax, eax
je 0x4577f6
mov esi, 0x4bd090
jmp 0x4577fb
mov esi, 0x4bd080
mov edi, dword [esp + 0x5e0]
mov eax, dword [esi]
mov edx, dword [esi + 4]
mov ecx, dword [esi + 8]
mov esi, dword [esi + 0xc]
test edi, 0x2000
mov dword [esp + 0x5b0], eax
mov dword [esp + 0x5b4], edx
mov dword [esp + 0x5b8], ecx
mov dword [esp + 0x5bc], esi
je 0x45799c
or ebx, 0x8000000
jmp 0x45799c
test eax, 0x4000
je 0x457859
or ebx, 0x9000000
mov eax, ebx
and eax, 8
mov dword [esp + 0x5e8], eax
mov eax, dword [esp + 0x49c]
mov edx, dword [esp + 0x660]
mov dword [esp + 0x5ec], eax
cmp edx, 2
jae 0x45787e
xor eax, eax
mov dword [esp + 0x484], eax
jmp 0x45788c
mov eax, dword [esp + 0x4a0]
mov dword [esp + 0x484], eax
mov eax, edx
cmp eax, 3
jae 0x45789e
xor eax, eax
mov dword [esp + 0x150], eax
jmp 0x4578ac
mov eax, dword [esp + 0x4a4]
mov dword [esp + 0x150], eax
mov eax, edx
cmp eax, 4
jae 0x4578be
xor eax, eax
mov dword [esp + 0x5d4], eax
jmp 0x4578cc
mov eax, dword [esp + 0x4a8]
mov dword [esp + 0x5d4], eax
mov eax, dword [esp + 0x654]
cmp eax, 0xffffc002
jle 0x457a18
mov edx, dword [esp + 0x5d4]
mov esi, dword [esp + 0x150]
shr edx, 0xf
mov eax, esi
shl eax, 0x11
or edx, eax
mov eax, dword [esp + 0x484]
mov dword [esp + 0x5d4], edx
mov edx, dword [esp + 0x5ec]
shr esi, 0xf
mov ecx, eax
shl ecx, 0x11
or esi, ecx
mov dword [esp + 0x150], esi
shr eax, 0xf
mov edi, edx
shl edi, 0x11
or eax, edi
mov dword [esp + 0x484], eax
mov eax, dword [esp + 0x654]
shr edx, 0xf
and edx, 0xfffeffff
add eax, 0x3ffe
shl eax, 0x10
or edx, eax
mov dword [esp + 0x5ec], edx
mov eax, dword [esp + 0x5e8]
test eax, eax
je 0x457964
or dword [esp + 0x5ec], 0x80000000
mov eax, dword [esp + 0x5d4]
mov edx, dword [esp + 0x150]
mov ecx, dword [esp + 0x484]
mov esi, dword [esp + 0x5ec]
mov dword [esp + 0x5b0], eax
mov dword [esp + 0x5b4], edx
mov dword [esp + 0x5b8], ecx
mov dword [esp + 0x5bc], esi
mov eax, dword [esp + 0x5dc]
test eax, eax
je 0x4579cc
mov eax, dword [esp + 0x5e0]
test eax, 0x40000
jne 0x4579bc
mov dword [esp + 0x658], ebp
mov edx, dword [esp + 0x5dc]
mov eax, dword [esp + 0x658]
mov dword [edx], eax
mov eax, dword [esp + 0x6a8]
test eax, eax
je 0x4579dc
shr ebx, 0x18
mov dword [eax], ebx
mov edx, dword [esp + 0x5b0]
mov ebp, dword [esp + 0x5e4]
mov dword [ebp], edx
mov ecx, dword [esp + 0x5b4]
mov dword [ebp + 4], ecx
mov eax, dword [esp + 0x5b8]
mov dword [ebp + 8], eax
mov ebx, dword [esp + 0x5bc]
mov dword [ebp + 0xc], ebx
mov eax, ebp
add esp, 0x678
pop ebx
pop ebp
pop esi
pop edi
ret
add eax, 0x406e
neg eax
mov dword [esp + 0x654], eax
lea edi, [eax + 0x80]
cmp edi, 0x20
jl 0x458ec4
add eax, 0x60
mov dword [esp + 0x654], eax
cmp eax, 0xc0
jl 0x457a75
add edi, 0xffffff60
cmp edi, 0xe0
jge 0x457a46
xor eax, eax
mov dword [esp + 0x150], eax
lea ecx, [edi - 0x20]
mov dword [esp + 0x484], eax
mov dword [esp + 0x5ec], eax
mov dword [esp + 0x654], ecx
mov edi, dword [esp + 0x654]
mov eax, dword [esp + 0x5ec]
mov ecx, dword [esp + 0x150]
mov esi, dword [esp + 0x484]
jmp 0x457a98
xor eax, eax
add edi, 0xffffffe0
mov edx, ecx
mov ecx, esi
mov esi, eax
cmp edi, 0x20
jge 0x457a93
jmp 0x458e9f
mov ecx, dword [esp + 0x660]
mov edx, dword [esp + 0x674]
mov esi, dword [0x4bd0c4]
add ecx, 1
cmp ecx, 2
mov dword [esp + 0x660], ecx
mov dword [esp + ecx*4 + 0x78], edx
mov edx, dword [esp + 0x7c]
jb 0x4590bd
mov dword [esp + 0x598], ebx
mov ebx, ecx
mov dword [esp + 0x59c], ebp
mov ecx, 2
jmp 0x457af5
mov edx, dword [esp + 0x158]
cmp ecx, ebx
jne 0x457b00
mov esi, dword [eax*4 + 0x4bd0a0]
xor edi, edi
lea ebp, [ecx - 1]
test ebp, ebp
jle 0x457b9c
mov dword [esp + 0x158], 0
mov dword [esp + 0x5d8], eax
mov edi, 1
mov dword [esp + 0x5f0], esi
mov dword [esp + 0x5f4], edx
mov eax, dword [esp + 0x5f0]
mul dword [esp + 0x5f4]
mov dword [esp + 0x5fc], eax
mov dword [esp + 0x5f8], edx
mov edx, dword [esp + edi*4 + 0x158]
mov eax, dword [esp + edi*4 + 0x154]
add eax, dword [esp + 0x5fc]
cmp eax, dword [esp + 0x5fc]
mov dword [esp + edi*4 + 0x154], eax
mov eax, 0
adc eax, 0
add eax, dword [esp + 0x5f8]
mov dword [esp + edi*4 + 0x158], eax
add edi, 1
cmp edi, ebp
jle 0x457b24
mov eax, dword [esp + 0x5d8]
mov edi, dword [esp + 0x158]
mov edx, dword [esp + ecx*4 + 0x78]
add edi, edx
mov dword [esp + 0x158], edi
cmp edi, edx
jae 0x457bfb
mov dword [esp + ecx*4 + 0x158], 0
mov edx, dword [esp + 0x15c]
cmp edx, 0xffffffff
je 0x457bd2
mov edx, dword [esp + 0x15c]
mov ebp, 2
jmp 0x457bf1
mov ebp, 2
mov dword [esp + ebp*4 + 0x154], 0
mov edx, dword [esp + ebp*4 + 0x158]
add ebp, 1
cmp edx, 0xffffffff
je 0x457bd7
add edx, 1
mov dword [esp + ebp*4 + 0x154], edx
add ecx, 1
cmp ecx, ebx
jbe 0x457aee
jmp 0x458f52
mov esi, dword [esp + 0x664]
mov dword [esp + 0x658], ebp
mov dword [esp + 0x5d8], eax
mov dword [esp + 0x484], edi
add ebp, 1
add esi, 0xffffffff
xor edx, edx
xor ecx, ecx
mov dword [esp + 0x668], ecx
test esi, esi
je case.default.0x457c5a
movsx eax, byte [ebp]
or ebx, 0x10
lea edi, [eax - 9]
cmp edi, 0x56
ja case.default.0x457c5a
mov edi, dword [edi*4 + 0x4bbd00]
jmp edi
mov eax, dword [esp + 0x5e0]
test al, 0x10
jne 0x457cec
jmp case.default.0x457c5a
lea ecx, [ecx + ecx*4]
or ebx, 0x40
lea ecx, [eax + ecx*2]
add ecx, 0xffffffd0
add edx, 1
jmp 0x457cec
test edx, edx
jne case.0x457c5a.49
or ebx, 0x40
jmp 0x457cec
mov eax, dword [esp + 0x5e0]
test al, 8
jne 0x457cec
jmp case.default.0x457c5a
or ebx, 0x80
jmp case.0x457c5a.43
mov eax, dword [esp + 0x5e0]
test al, 4
jne 0x457cec
jmp case.default.0x457c5a
mov eax, ebx
and eax, 0x20
or eax, edx
jne 0x457d11
or ebx, 0x20
jmp 0x457cec
mov eax, dword [esp + 0x5e0]
test al, 2
jne 0x457cec
jmp 0x457d2b
mov eax, dword [esp + 0x5d8]
mov edi, dword [esp + 0x484]
mov dword [esp + 0x668], ecx
jmp 0x455783
mov eax, dword [esp + 0x5e0]
test al, 1
je case.default.0x457c5a
add esi, 0xffffffff
add ebp, 1
jmp 0x457c38
mov eax, dword [esp + 0x5d8]
mov edi, dword [esp + 0x484]
mov dword [esp + 0x668], ecx
jmp 0x455783
mov eax, dword [esp + 0x5d8]
mov edi, dword [esp + 0x484]
mov dword [esp + 0x668], ecx
jmp 0x455783
test al, 0x40
je case.default.0x457c5a
mov eax, 0x30
jmp case.0x457c5a.48
mov esi, dword [esp + 0x664]
jmp 0x457c12
mov esi, dword [esp + 0x664]
mov eax, ebx
and eax, 0x1800
mov dword [esp + 0x484], eax
cmp eax, 0x800
jne 0x457d99
mov eax, dword [0x4bd070]
mov edx, dword [0x4bd074]
mov ecx, dword [0x4bd078]
mov edi, dword [0x4bd07c]
mov dword [esp + 0x5b0], eax
mov dword [esp + 0x5b4], edx
mov dword [esp + 0x5b8], ecx
mov dword [esp + 0x5bc], edi
jmp 0x457e2b
lea eax, [esp]
push ebp
push eax
call fcn.0046895c
add esp, 8
mov eax, dword [esp + 8]
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x5b0], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x5b4], edx
mov edx, dword [esp]
mov dword [esp + 0x5b8], ecx
sub esi, edx
test esi, esi
jl 0x457ddd
mov dword [esp + 0x5bc], eax
jmp 0x457e14
mov eax, dword [0x4bd070]
mov edx, dword [0x4bd074]
mov ecx, dword [0x4bd078]
mov esi, dword [0x4bd07c]
mov dword [esp + 0x5b0], eax
mov dword [esp + 0x5b4], edx
mov dword [esp + 0x5b8], ecx
xor edx, edx
mov dword [esp + 0x5bc], esi
xor esi, esi
add ebp, edx
test bl, 2
je 0x457e2b
test bl, 8
jne 0x457e2b
and dword [esp + 0x5bc], 0x7fffffff
mov eax, dword [esp + 0x5e0]
test al, 2
je 0x457e4b
test esi, esi
je 0x457e4b
movsx eax, byte [ebp]
cmp eax, 0x20
jne 0x457e4b
add ebp, 1
add esi, 0xffffffff
jne 0x457e3a
mov eax, dword [esp + 0x484]
cmp eax, 0x800
jne 0x457e73
test esi, esi
je 0x457e8f
mov eax, dword [esp + 0x5e0]
test eax, 0x8000
je 0x457e8f
or ebx, 0x3000000
jmp 0x457e8f
movsx eax, byte [ebp]
test eax, eax
je 0x457e8f
mov eax, dword [esp + 0x5e0]
test eax, 0x8000
je 0x457e8f
or ebx, 0x3000000
mov eax, dword [esp + 0x5e0]
and ebx, 0xfffffff7
test eax, 0x40000000
je 0x457ea6
or ebx, 0xa000000
mov eax, dword [esp + 0x5dc]
test eax, eax
je 0x457eb3
mov dword [eax], ebp
mov eax, dword [esp + 0x6a8]
test eax, eax
je 0x457ec3
shr ebx, 0x18
mov dword [eax], ebx
mov edx, dword [esp + 0x5b0]
mov ebp, dword [esp + 0x5e4]
mov dword [ebp], edx
mov ecx, dword [esp + 0x5b4]
mov dword [ebp + 4], ecx
mov eax, dword [esp + 0x5b8]
mov dword [ebp + 8], eax
mov ebx, dword [esp + 0x5bc]
mov dword [ebp + 0xc], ebx
mov eax, ebp
add esp, 0x678
pop ebx
pop ebp
pop esi
pop edi
ret
mov edi, dword [esp + 0x484]
mov dword [esp + 0x664], esi
mov esi, dword [esp + 0x150]
jmp case.0x45532d.10
mov esi, dword [esp + 0x150]
mov dword [esp + 0x664], edi
mov edi, dword [esp + 0x484]
jmp 0x4555de
mov esi, dword [esp + 0x150]
mov dword [esp + 0x664], edi
mov edi, dword [esp + 0x484]
jmp 0x455542
movsx ecx, byte [edx]
jmp 0x45553a
mov esi, dword [esp + 0x664]
jmp 0x457c12
mov ecx, dword [esp + 0x668]
mov edx, dword [esp + 0x660]
cmp edx, ecx
jae 0x457f99
mov eax, dword [esp + 0x674]
mov dword [esp + 0x674], esi
add edx, 1
mov dword [esp + 0x660], edx
mov dword [esp + edx*4 + 0x78], eax
mov eax, 1
jmp 0x455735
or dword [esp + 0x65c], esi
jmp 0x455735
movsx ecx, byte [edx]
mov dword [esp + 0xbc], ecx
jmp 0x455488
mov esi, dword [esp + 0x664]
add ebp, 0xffffffff
add esi, 1
jmp 0x457c12
test dl, 0x40
je case.0x45532d.10
mov esi, 0x30
jmp case.0x45532d.48
mov esi, dword [esp + 0x664]
mov dword [esp + 0x658], ebp
xor edx, edx
mov dword [esp + 0x668], edx
jmp 0x455783
mov esi, dword [esp + 0x664]
jmp 0x457fe0
xor eax, eax
jmp 0x455903
mov esi, 1
mov edx, eax
neg edx
add edx, 0x20
jmp 0x455a44
xor eax, eax
jmp 0x455a93
lea edx, [esp + 0x49c]
mov dword [esp + 0xbc], edx
mov eax, 4
mov dword [esp + 0x660], eax
jmp 0x455cd0
mov ebp, 4
jmp 0x456228
mov edx, 2
jmp 0x456113
mov ebp, 4
jmp 0x4567ce
mov edx, 2
jmp 0x4566b9
mov ebx, dword [esp + 0x598]
mov ebp, dword [esp + 0x59c]
mov eax, dword [esp + 0x5e8]
mov ecx, dword [esp + 0xb8]
add ecx, dword [esp + 0x670]
mov dword [esp + 0x668], eax
mov dword [esp + 0xb8], ecx
mov ecx, eax
shl ecx, 2
add eax, 0xffffffff
mov edx, dword [esp + ecx + 0x324]
mov dword [esp + ecx + 0x558], edx
mov dword [esp + 0x5e8], eax
je 0x4580e3
xor edx, edx
add edx, dword [esp + eax*4 + 0x364]
mov esi, dword [esp + eax*4 + 0x324]
add esi, edx
cmp esi, edx
mov dword [esp + eax*4 + 0x558], esi
mov edx, 0
adc edx, 0
add eax, 0xffffffff
jne 0x4580b6
mov edx, dword [esp + ecx + 0x558]
test edx, edx
jne 0x458113
mov edx, dword [esp + 0x5e8]
jmp 0x4580f3
add edx, 0xffffffff
mov ecx, edx
shl ecx, 2
mov eax, dword [esp + ecx + 0x558]
test eax, eax
je 0x4580f0
mov dword [esp + 0x5e8], edx
mov eax, edx
mov dword [esp + 0x668], eax
mov eax, dword [esp + 0x66c]
mov eax, dword [eax]
test eax, eax
jle 0x458220
mov edx, dword [esp + 0x66c]
add dword [esp + 0xb8], 0xffffffff
add eax, eax
mov dword [edx], eax
mov eax, dword [esp + 0x668]
cmp eax, 2
jb 0x45833c
lea edx, [eax - 2]
cmp edx, 5
jb 0x458332
mov edx, 2
lea eax, [eax - 5]
mov esi, dword [esp + edx*4 + 0x558]
mov edi, dword [esp + edx*4 + 0x55c]
shr esi, 0x1f
shr edi, 0x1f
or dword [esp + edx*4 + 0x554], esi
mov esi, dword [esp + edx*4 + 0x558]
add esi, esi
or esi, edi
mov edi, dword [esp + edx*4 + 0x55c]
mov dword [esp + edx*4 + 0x558], esi
mov esi, dword [esp + edx*4 + 0x560]
add edi, edi
shr esi, 0x1f
or edi, esi
mov esi, dword [esp + edx*4 + 0x564]
mov dword [esp + edx*4 + 0x55c], edi
mov edi, dword [esp + edx*4 + 0x560]
add edi, edi
shr esi, 0x1f
or edi, esi
mov esi, dword [esp + edx*4 + 0x564]
add esi, esi
mov dword [esp + edx*4 + 0x560], edi
mov dword [esp + edx*4 + 0x564], esi
add edx, 4
cmp edx, eax
jbe 0x45815b
mov edi, dword [esp + 0x668]
mov eax, dword [esp + edx*4 + 0x558]
mov esi, dword [esp + edx*4 + 0x558]
shr eax, 0x1f
or dword [esp + edx*4 + 0x554], eax
add esi, esi
mov dword [esp + edx*4 + 0x558], esi
add edx, 1
cmp edx, edi
jbe 0x4581de
mov eax, dword [esp + ecx + 0x558]
mov dword [esp + 0x668], edi
test eax, eax
jne 0x458220
add dword [esp + 0x668], 0xffffffff
mov eax, dword [esp + 0x668]
cmp eax, 4
jb 0x45830e
mov eax, dword [esp + 0x56c]
mov edx, dword [esp + 0x568]
shr eax, 0x1f
add edx, eax
mov dword [esp + 0x568], edx
cmp edx, eax
jae 0x4582e2
mov eax, dword [esp + 0x564]
mov dword [esp + 0x558], 0
cmp eax, 0xffffffff
je 0x458277
mov eax, 3
mov dword [esp + 0x668], eax
jmp 0x45829d
mov eax, 3
mov dword [esp + 0x668], eax
add eax, 0xffffffff
mov edx, dword [esp + eax*4 + 0x558]
cmp edx, 0xffffffff
je 0x458283
mov dword [esp + 0x668], eax
test eax, eax
je 0x4582b5
mov edx, eax
mov eax, dword [esp + edx*4 + 0x558]
add eax, 1
mov dword [esp + edx*4 + 0x558], eax
jmp 0x456b66
mov eax, dword [esp + 0x66c]
add dword [esp + 0xb8], 1
mov edx, 1
mov dword [eax], 0x80000000
mov eax, dword [esp + 0x55c]
mov dword [esp + 0x668], edx
jmp 0x456b66
test edx, edx
jne 0x45831a
mov eax, 4
mov dword [esp + 0x668], eax
mov edx, eax
mov eax, dword [esp + edx*4 + 0x554]
add edx, 0xffffffff
test eax, eax
je 0x4582f4
mov dword [esp + 0x668], edx
jmp 0x456b66
mov eax, dword [esp + eax*4 + 0x558]
jmp 0x456b66
mov eax, 4
mov dword [esp + 0x668], eax
mov eax, dword [esp + 0x568]
jmp 0x456b66
mov edx, 2
jmp 0x4581d7
mov eax, dword [esp + ecx + 0x558]
jmp 0x458214
add esi, 0xffffffff
jne 0x456aae
mov ebx, dword [esp + 0x598]
mov ebp, dword [esp + 0x59c]
jmp 0x458072
mov ebx, dword [esp + 0x598]
mov ebp, dword [esp + 0x59c]
mov eax, dword [esp + 0x484]
mov ecx, dword [esp + 0x654]
add ecx, dword [esp + 0xb8]
mov dword [esp + 0x660], eax
mov dword [esp + 0x654], ecx
mov ecx, eax
shl ecx, 2
add eax, 0xffffffff
mov edx, dword [esp + ecx + 0x518]
mov dword [esp + ecx + 0x498], edx
mov dword [esp + 0x484], eax
je 0x4583e3
xor edx, edx
add edx, dword [esp + eax*4 + 0x4d8]
mov esi, dword [esp + eax*4 + 0x518]
add esi, edx
cmp esi, edx
mov dword [esp + eax*4 + 0x498], esi
mov edx, 0
adc edx, 0
add eax, 0xffffffff
jne 0x4583b6
mov edx, dword [esp + ecx + 0x498]
test edx, edx
jne 0x458411
mov eax, dword [esp + 0x484]
jmp 0x4583f3
add eax, 0xffffffff
mov ecx, eax
shl ecx, 2
mov edx, dword [esp + ecx + 0x498]
test edx, edx
je 0x4583f0
mov dword [esp + 0x484], eax
mov dword [esp + 0x660], eax
mov eax, dword [esp + 0xbc]
mov eax, dword [eax]
test eax, eax
jle 0x4572d7
mov edx, dword [esp + 0xbc]
add dword [esp + 0x654], 0xffffffff
add eax, eax
mov dword [edx], eax
mov eax, dword [esp + 0x660]
cmp eax, 2
jb 0x458527
lea edx, [eax - 2]
cmp edx, 5
jb 0x458530
mov edx, 2
lea eax, [eax - 5]
mov esi, dword [esp + edx*4 + 0x498]
mov edi, dword [esp + edx*4 + 0x49c]
shr esi, 0x1f
shr edi, 0x1f
or dword [esp + edx*4 + 0x494], esi
mov esi, dword [esp + edx*4 + 0x498]
add esi, esi
or esi, edi
mov edi, dword [esp + edx*4 + 0x49c]
mov dword [esp + edx*4 + 0x498], esi
mov esi, dword [esp + edx*4 + 0x4a0]
add edi, edi
shr esi, 0x1f
or edi, esi
mov esi, dword [esp + edx*4 + 0x4a4]
mov dword [esp + edx*4 + 0x49c], edi
mov edi, dword [esp + edx*4 + 0x4a0]
add edi, edi
shr esi, 0x1f
or edi, esi
mov esi, dword [esp + edx*4 + 0x4a4]
add esi, esi
mov dword [esp + edx*4 + 0x4a0], edi
mov dword [esp + edx*4 + 0x4a4], esi
add edx, 4
cmp edx, eax
jbe 0x458459
mov edi, dword [esp + 0x660]
mov eax, dword [esp + edx*4 + 0x498]
mov esi, dword [esp + edx*4 + 0x498]
shr eax, 0x1f
or dword [esp + edx*4 + 0x494], eax
add esi, esi
mov dword [esp + edx*4 + 0x498], esi
add edx, 1
cmp edx, edi
jbe 0x4584dc
mov eax, dword [esp + ecx + 0x498]
mov dword [esp + 0x660], edi
test eax, eax
jne 0x4572d7
add dword [esp + 0x660], 0xffffffff
jmp 0x4572d7
mov eax, dword [esp + ecx + 0x498]
jmp 0x458512
mov edx, 2
jmp 0x4584d5
add edi, 0xffffffff
jne 0x456d4e
mov ebx, dword [esp + 0x598]
mov ebp, dword [esp + 0x59c]
jmp 0x458372
mov eax, 4
mov dword [esp + 0x668], eax
mov eax, dword [esp + 0x568]
jmp 0x4568bc
mov ebx, dword [esp + 0x598]
mov ebp, dword [esp + 0x59c]
mov edx, dword [esp + 0x150]
mov eax, dword [esp + 0xb8]
add eax, dword [esp + 0x5e8]
mov ecx, dword [esp + 0x5ec]
mov dword [esp + 0x668], edx
test ecx, ecx
mov dword [esp + 0xb8], eax
mov eax, dword [esp + edx*4 + 0x404]
mov dword [esp + edx*4 + 0x558], eax
je 0x4585f5
mov eax, dword [esp + 0x150]
xor edx, edx
lea eax, [eax - 1]
add edx, dword [esp + eax*4 + 0x444]
mov ecx, dword [esp + eax*4 + 0x404]
add ecx, edx
cmp ecx, edx
mov dword [esp + eax*4 + 0x558], ecx
mov edx, 0
adc edx, 0
add eax, 0xffffffff
jne 0x4585c1
mov eax, dword [esp + 0x150]
mov eax, dword [esp + eax*4 + 0x558]
test eax, eax
jne 0x458615
mov eax, dword [esp + 0x668]
add eax, 0xffffffff
mov edx, dword [esp + eax*4 + 0x558]
test edx, edx
je 0x458600
mov dword [esp + 0x668], eax
mov eax, dword [esp + 0x66c]
mov eax, dword [eax]
test eax, eax
jle 0x45870f
mov edx, dword [esp + 0x66c]
add dword [esp + 0xb8], 0xffffffff
add eax, eax
mov dword [edx], eax
mov eax, dword [esp + 0x668]
cmp eax, 2
jb 0x45870f
lea edx, [eax - 2]
cmp edx, 5
jb 0x458d9d
mov edx, 2
lea eax, [eax - 5]
mov ecx, dword [esp + edx*4 + 0x558]
mov edi, dword [esp + edx*4 + 0x558]
mov esi, dword [esp + edx*4 + 0x55c]
shr ecx, 0x1f
add edi, edi
shr esi, 0x1f
or dword [esp + edx*4 + 0x554], ecx
mov ecx, dword [esp + edx*4 + 0x560]
or edi, esi
mov esi, dword [esp + edx*4 + 0x55c]
mov dword [esp + edx*4 + 0x558], edi
add esi, esi
shr ecx, 0x1f
or esi, ecx
mov ecx, dword [esp + edx*4 + 0x564]
mov dword [esp + edx*4 + 0x55c], esi
shr ecx, 0x1f
mov esi, dword [esp + edx*4 + 0x560]
add esi, esi
or esi, ecx
mov ecx, dword [esp + edx*4 + 0x564]
add ecx, ecx
mov dword [esp + edx*4 + 0x560], esi
mov dword [esp + edx*4 + 0x564], ecx
add edx, 4
cmp edx, eax
jbe 0x45865d
mov esi, dword [esp + 0x668]
mov eax, dword [esp + edx*4 + 0x558]
mov ecx, dword [esp + edx*4 + 0x558]
shr eax, 0x1f
or dword [esp + edx*4 + 0x554], eax
add ecx, ecx
mov dword [esp + edx*4 + 0x558], ecx
add edx, 1
cmp edx, esi
jbe 0x4586e0
mov dword [esp + 0x668], esi
mov eax, dword [esp + 0x668]
mov edx, dword [esp + eax*4 + 0x558]
test edx, edx
jne 0x458729
add dword [esp + 0x668], 0xffffffff
mov eax, dword [esp + 0x668]
cmp eax, 4
jb 0x458812
mov eax, dword [esp + 0x56c]
mov edx, dword [esp + 0x568]
shr eax, 0x1f
add edx, eax
mov dword [esp + 0x568], edx
cmp edx, eax
jae 0x4587e5
mov eax, dword [esp + 0x564]
mov dword [esp + 0x558], 0
cmp eax, 0xffffffff
je 0x458780
mov eax, 3
mov dword [esp + 0x668], eax
jmp 0x4587a6
mov eax, 3
mov dword [esp + 0x668], eax
add eax, 0xffffffff
mov edx, dword [esp + eax*4 + 0x558]
cmp edx, 0xffffffff
je 0x45878c
mov dword [esp + 0x668], eax
test eax, eax
je 0x4587bb
mov edx, eax
mov eax, dword [esp + edx*4 + 0x558]
add eax, 1
mov dword [esp + edx*4 + 0x558], eax
jmp 0x458819
mov eax, dword [esp + 0x66c]
add dword [esp + 0xb8], 1
mov edx, 1
mov dword [eax], 0x80000000
mov eax, dword [esp + 0x55c]
mov dword [esp + 0x668], edx
jmp 0x458819
test edx, edx
jne 0x458d85
mov eax, 4
mov dword [esp + 0x668], eax
mov edx, eax
mov eax, dword [esp + edx*4 + 0x554]
add edx, 0xffffffff
test eax, eax
je 0x4587fb
mov dword [esp + 0x668], edx
jmp 0x458819
mov eax, dword [esp + eax*4 + 0x558]
mov edx, dword [esp + 0x650]
test edx, edx
je 0x4568bc
mov edi, edx
mov ecx, dword [esp + 0x668]
mov dword [esp + 0x28], eax
mov eax, dword [esp + edi*4 + 0x224]
mov dword [esp + 0x2c], eax
lea edx, [ecx + edi]
mov dword [esp + 0x5e8], edx
lea esi, [ecx + edi - 1]
mov dword [esp + 0x484], esi
mov eax, dword [esp + 0x28]
mul dword [esp + 0x2c]
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], edx
mov eax, dword [esp + 0x484]
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
mov esi, dword [esp + 0x650]
shl eax, 2
mov dword [esp + eax + 0x198], edx
add esi, 0xffffffff
mov dword [esp + eax + 0x194], ecx
je 0x458941
mov eax, dword [esp + 0x650]
mov esi, dword [esp + 0x668]
mov edi, dword [esp + 0x484]
lea ecx, [eax - 1]
mov eax, dword [esp + esi*4 + 0x558]
mov edx, dword [esp + ecx*4 + 0x224]
mov dword [esp + edi*4 + 0x1d4], 0
mov dword [esp + 0x214], eax
mov dword [esp + 0x218], edx
mov eax, dword [esp + 0x214]
mul dword [esp + 0x218]
mov dword [esp + 0x220], eax
mov dword [esp + 0x21c], edx
mov eax, dword [esp + edi*4 + 0x194]
add eax, dword [esp + 0x220]
cmp eax, dword [esp + 0x220]
mov dword [esp + edi*4 + 0x194], eax
mov edx, 0
adc edx, 0
add edi, 0xffffffff
mov eax, edi
shl eax, 2
add edx, dword [esp + 0x21c]
mov dword [esp + eax + 0x194], edx
add ecx, 0xffffffff
jne 0x4588ad
mov dword [esp + 0x668], esi
mov dword [esp + 0x484], edi
mov dword [esp + eax + 0x1d4], 0
mov eax, dword [esp + 0x484]
add eax, 0xffffffff
test eax, eax
mov dword [esp + 0x484], eax
jl 0x4589dd
cmp eax, 6
jl 0x4589bf
mov edx, eax
xor eax, eax
mov dword [esp + edx*4 + 0x1d4], eax
mov dword [esp + edx*4 + 0x194], eax
mov dword [esp + edx*4 + 0x1d0], eax
mov dword [esp + edx*4 + 0x190], eax
mov dword [esp + edx*4 + 0x1cc], eax
mov dword [esp + edx*4 + 0x18c], eax
mov dword [esp + edx*4 + 0x1c8], eax
mov dword [esp + edx*4 + 0x188], eax
mov dword [esp + edx*4 + 0x1c4], eax
mov dword [esp + edx*4 + 0x184], eax
add edx, 0xfffffffb
cmp edx, 6
jge 0x458968
mov dword [esp + 0x484], edx
mov edx, dword [esp + 0x484]
xor eax, eax
mov dword [esp + edx*4 + 0x1d4], eax
mov dword [esp + edx*4 + 0x194], eax
add edx, 0xffffffff
test edx, edx
jge 0x4589c6
mov eax, dword [esp + 0x668]
add eax, 0xffffffff
mov dword [esp + 0x668], eax
je 0x458acc
mov esi, eax
mov edi, dword [esp + 0x650]
mov dword [esp + 0x598], ebx
mov dword [esp + 0x59c], ebp
mov ebp, edi
test edi, edi
je 0x458dcd
mov eax, esi
shl eax, 2
mov ebx, ebp
shl ebx, 2
lea ecx, [eax + ebp*4]
mov eax, dword [esp + esi*4 + 0x558]
mov edx, dword [esp + ebx + 0x224]
mov dword [esp + 0x600], eax
mov dword [esp + 0x604], edx
mov eax, dword [esp + 0x600]
mul dword [esp + 0x604]
mov dword [esp + 0x60c], eax
mov dword [esp + 0x608], edx
mov eax, dword [esp + ecx + 0x194]
add eax, dword [esp + 0x60c]
cmp eax, dword [esp + 0x60c]
mov edx, dword [esp + ecx + 0x190]
mov dword [esp + ecx + 0x194], eax
mov eax, 0
adc eax, 0
add ebx, 0xfffffffc
add eax, dword [esp + 0x608]
add edx, eax
cmp edx, eax
mov eax, 0
adc eax, 0
mov dword [esp + ecx + 0x190], edx
add dword [esp + ecx + 0x1cc], eax
add ecx, 0xfffffffc
add ebp, 0xffffffff
jne 0x458a22
add esi, 0xffffffff
jne 0x458a0b
mov ebx, dword [esp + 0x598]
mov ebp, dword [esp + 0x59c]
mov eax, dword [esp + 0x5e8]
mov ecx, dword [esp + 0x664]
add dword [esp + 0xb8], ecx
mov ecx, eax
mov dword [esp + 0x668], eax
shl ecx, 2
mov edx, dword [esp + ecx + 0x194]
add eax, 0xffffffff
mov dword [esp + 0x5e8], eax
mov dword [esp + ecx + 0x558], edx
je 0x458b36
xor edx, edx
add edx, dword [esp + eax*4 + 0x1d4]
mov esi, dword [esp + eax*4 + 0x194]
add esi, edx
cmp esi, edx
mov dword [esp + eax*4 + 0x558], esi
mov edx, 0
adc edx, 0
add eax, 0xffffffff
jne 0x458b09
mov edx, dword [esp + ecx + 0x558]
test edx, edx
jne 0x458b64
mov eax, dword [esp + 0x5e8]
jmp 0x458b46
add eax, 0xffffffff
mov ecx, eax
shl ecx, 2
mov edx, dword [esp + ecx + 0x558]
test edx, edx
je 0x458b43
mov dword [esp + 0x5e8], eax
mov dword [esp + 0x668], eax
mov eax, dword [esp + 0x66c]
mov eax, dword [eax]
test eax, eax
jle 0x458c71
mov edx, dword [esp + 0x66c]
add dword [esp + 0xb8], 0xffffffff
add eax, eax
mov dword [edx], eax
mov eax, dword [esp + 0x668]
cmp eax, 2
jb 0x458d79
lea edx, [eax - 2]
cmp edx, 5
jb 0x458d6f
mov edx, 2
lea eax, [eax - 5]
mov esi, dword [esp + edx*4 + 0x558]
mov edi, dword [esp + edx*4 + 0x55c]
shr esi, 0x1f
shr edi, 0x1f
or dword [esp + edx*4 + 0x554], esi
mov esi, dword [esp + edx*4 + 0x558]
add esi, esi
or esi, edi
mov edi, dword [esp + edx*4 + 0x55c]
mov dword [esp + edx*4 + 0x558], esi
mov esi, dword [esp + edx*4 + 0x560]
add edi, edi
shr esi, 0x1f
or edi, esi
mov esi, dword [esp + edx*4 + 0x564]
mov dword [esp + edx*4 + 0x55c], edi
mov edi, dword [esp + edx*4 + 0x560]
add edi, edi
shr esi, 0x1f
or edi, esi
mov esi, dword [esp + edx*4 + 0x564]
add esi, esi
mov dword [esp + edx*4 + 0x560], edi
mov dword [esp + edx*4 + 0x564], esi
add edx, 4
cmp edx, eax
jbe 0x458bac
mov edi, dword [esp + 0x668]
mov eax, dword [esp + edx*4 + 0x558]
mov esi, dword [esp + edx*4 + 0x558]
shr eax, 0x1f
or dword [esp + edx*4 + 0x554], eax
add esi, esi
mov dword [esp + edx*4 + 0x558], esi
add edx, 1
cmp edx, edi
jbe 0x458c2f
mov eax, dword [esp + ecx + 0x558]
mov dword [esp + 0x668], edi
test eax, eax
jne 0x458c71
add dword [esp + 0x668], 0xffffffff
mov eax, dword [esp + 0x668]
cmp eax, 4
jb 0x458d63
mov eax, dword [esp + 0x56c]
mov edx, dword [esp + 0x568]
shr eax, 0x1f
add edx, eax
mov dword [esp + 0x568], edx
cmp edx, eax
jae 0x458d33
mov eax, dword [esp + 0x564]
mov dword [esp + 0x558], 0
cmp eax, 0xffffffff
je 0x458cc8
mov eax, 3
mov dword [esp + 0x668], eax
jmp 0x458cee
mov eax, 3
mov dword [esp + 0x668], eax
add eax, 0xffffffff
mov edx, dword [esp + eax*4 + 0x558]
cmp edx, 0xffffffff
je 0x458cd4
mov dword [esp + 0x668], eax
test eax, eax
je 0x458d06
mov edx, eax
mov eax, dword [esp + edx*4 + 0x558]
add eax, 1
mov dword [esp + edx*4 + 0x558], eax
jmp 0x4568bc
mov eax, dword [esp + 0x66c]
add dword [esp + 0xb8], 1
mov edx, 1
mov dword [eax], 0x80000000
mov eax, dword [esp + 0x55c]
mov dword [esp + 0x668], edx
jmp 0x4568bc
test edx, edx
jne 0x458553
mov eax, 4
mov dword [esp + 0x668], eax
mov edx, eax
mov eax, dword [esp + edx*4 + 0x554]
add edx, 0xffffffff
test eax, eax
je 0x458d49
mov dword [esp + 0x668], edx
jmp 0x4568bc
mov eax, dword [esp + eax*4 + 0x558]
jmp 0x4568bc
mov edx, 2
jmp 0x458c28
mov eax, dword [esp + ecx + 0x558]
jmp 0x458c65
mov eax, 4
mov dword [esp + 0x668], eax
mov eax, dword [esp + 0x568]
jmp 0x458819
mov edx, 2
jmp 0x4586d9
add esi, 0xffffffff
jne 0x45721f
mov ebx, dword [esp + 0x598]
mov ebp, dword [esp + 0x59c]
jmp 0x458579
mov eax, ecx
shl eax, 2
jmp 0x457155
add esi, 0xffffffff
jne 0x458a0b
mov ebx, dword [esp + 0x598]
mov ebp, dword [esp + 0x59c]
jmp 0x458acc
mov eax, 2
mov dword [esp + 0x668], eax
mov eax, dword [esp + 0x560]
jmp 0x457024
mov eax, 0x1b
mov dword [esp + 0x668], eax
mov edx, 2
mov dword [esp + 0x484], edx
jmp 0x456fbe
xor eax, eax
mov dword [esp + 0x5e8], eax
mov dword [esp + 0x484], eax
jmp 0x456fbe
movsx eax, word [0x4bc9e4]
mov edx, dword [0x4bc86c]
mov esi, dword [0x4bc868]
mov edi, dword [0x4bc864]
mov dword [esp + 0xb8], eax
mov eax, dword [0x4bc860]
lea ecx, [esp + 0x55c]
mov dword [esp + 0x66c], ecx
mov dword [ecx], edx
mov edx, 4
mov dword [esp + 0x560], esi
mov dword [esp + 0x564], edi
mov dword [esp + 0x568], eax
mov dword [esp + 0x668], edx
jmp 0x458819
mov eax, 1
mov dword [esp + 0x668], eax
jmp 0x4575e7
mov dword [esp + 0x654], edi
mov dword [esp + 0x5d4], edx
xor eax, eax
mov dword [esp + 0x150], ecx
mov dword [esp + 0x484], esi
mov dword [esp + 0x5ec], eax
test edi, edi
je 0x45794e
mov edx, dword [esp + 0x5d4]
mov esi, dword [esp + 0x150]
mov ecx, edi
shr edx, cl
mov ecx, edi
neg ecx
mov dword [esp + 0x5d8], ecx
mov eax, esi
shl eax, cl
mov ecx, edi
shr esi, cl
mov ecx, dword [esp + 0x5d8]
or edx, eax
mov eax, dword [esp + 0x484]
mov dword [esp + 0x5d4], edx
mov edx, eax
shl edx, cl
mov ecx, edi
shr eax, cl
mov ecx, dword [esp + 0x5d8]
or esi, edx
mov dword [esp + 0x150], esi
mov esi, dword [esp + 0x5ec]
mov edx, esi
shl edx, cl
mov ecx, edi
shr esi, cl
mov dword [esp + 0x5ec], esi
or eax, edx
mov dword [esp + 0x484], eax
jmp 0x45794e
xor eax, eax
mov dword [esp + 0x654], eax
jmp 0x455b95
mov ebp, dword [esp + 0x59c]
mov dword [esp + 0x660], ebx
mov ebx, dword [esp + 0x598]
mov eax, dword [esp + 0x660]
mov edx, dword [esp + eax*4 + 0x154]
test edx, edx
jne 0x4590a1
mov esi, eax
add esi, 0xffffffff
lea edx, [esp + esi*4 + 0x154]
mov eax, dword [edx]
mov ecx, esi
shl ecx, 2
test eax, eax
je 0x458f7f
mov dword [esp + 0x5e8], ecx
mov dword [esp + 0x660], esi
test eax, eax
jle 0x45909a
xor esi, esi
add eax, eax
add esi, 1
test eax, eax
jg 0x458fac
mov dword [edx], eax
mov edx, dword [esp + 0x660]
shl edx, 5
sub edx, esi
mov dword [esp + 0x654], edx
test esi, esi
je 0x459034
mov edx, dword [esp + 0x660]
mov dword [esp + 0x49c], eax
add edx, 0xffffffff
je 0x459063
mov dword [esp + 0x598], ebx
mov eax, esi
mov dword [esp + 0x59c], ebp
neg eax
mov ebx, dword [esp + 0x660]
mov edi, dword [esp + edx*4 + 0x154]
sub ebx, edx
mov ecx, eax
mov ebp, edi
shr ebp, cl
or dword [esp + ebx*4 + 0x498], ebp
mov ecx, esi
shl edi, cl
mov dword [esp + ebx*4 + 0x49c], edi
add edx, 0xffffffff
jne 0x458ff7
mov ebx, dword [esp + 0x598]
mov ebp, dword [esp + 0x59c]
jmp 0x459063
mov edx, dword [esp + 0x660]
test edx, edx
je 0x459063
mov eax, edx
shl eax, 2
neg eax
add eax, dword [esp + 0x5e8]
mov ecx, dword [esp + edx*4 + 0x154]
mov dword [esp + eax + 0x49c], ecx
add eax, 4
add edx, 0xffffffff
jne 0x45904d
mov eax, dword [esp + 0x5e8]
mov edx, dword [esp + eax + 0x498]
test edx, edx
jne 0x455bbb
mov eax, dword [esp + 0x660]
mov edx, dword [esp + eax*4 + 0x494]
add eax, 0xffffffff
test edx, edx
je 0x459080
mov dword [esp + 0x660], eax
jmp 0x455bbb
xor esi, esi
jmp 0x458fb7
mov edx, eax
mov eax, edx
lea edx, [esp + edx*4 + 0x154]
shl eax, 2
mov dword [esp + 0x5e8], eax
mov eax, dword [edx]
jmp 0x458fa2
mov dword [esp + 0x158], edx
jmp 0x458f67
mov ebx, 0x6000000
xor eax, eax
mov dword [esp + 0x658], eax
jmp 0x45799c