Function at 0x45638c
Capabilities:
Authenticate hmac
Encode data using xor

Disassembly:
mov eax, 0x493f38
call fcn.00493440
sub esp, 0xc70
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov byte [ebp - 0x64], dl
mov dword [ebp - 0x128], ecx
mov dword [ebp - 0x3c], 0x3eca4f83
mov dword [ebp - 0x14], 0
push 3
pop ebx
jmp 0x4563cf
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x7ac], 9
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x4563be
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x3c], 0
jmp 0x4563f4
mov eax, dword [ebp - 0x3c]
mov dword [ebp + eax*4 - 0x7ac], 0xfffffff7
inc dword [ebp - 0x3c]
cmp dword [ebp - 0x3c], ebx
jl 0x4563e3
push 2
lea ecx, [ebp - 0xf4]
call fcn.0041c40c
mov dword [ebp - 0x2c], 0x1c29000d
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 2
jge 0x456433
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xf4]
mov dword [eax + ecx*4], 0x13b91020
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x456418
xor eax, eax
xor esi, esi
inc esi
mov dword [ebp - 0x2c], esi
cmp dword [ebp - 0x2c], eax
jl 0x4566f7
mov dword [ebp - 0x28], 0x62751c76
mov dword [ebp - 0x14], 0xfffffffc
mov dword [ebp - 0x28], esi
cmp dword [ebp - 0x28], eax
jl 0x4566ef
mov dword [ebp - 0x1c], 0xb61bab59
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], esi
jg 0x45657a
mov dword [ebp - 0x40], 6
mov dword [ebp - 0x20], 0x7a61
cmp dword [ebp - 0x20], 0x7c75
jle 0x4564d7
mov esi, eax
jmp 0x45648c
xor eax, eax
mov ebx, eax
xor edi, edi
lea eax, [ebx + esi]
cdq
push edx
push eax
lea ecx, [ebp - 0x950]
call fcn.00401a98
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x4564ab
mov eax, dword [eax]
push eax
call fcn.0047c13a
pop ecx
push edi
push 1
lea ecx, [ebp - 0x950]
call fcn.0041c762
inc ebx
cmp ebx, 0x3d6
jl 0x456490
inc esi
cmp esi, 0x59fc
jl 0x45648a
push 3
pop ebx
jmp 0x4564d9
xor edi, edi
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x2c]
neg edx
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
cmp edx, eax
setne cl
mov eax, dword [ebp - 0x1c]
xor edx, edx
cmp ecx, eax
setge dl
imul edx, dword [ebp - 0x28]
neg edx
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
cmp edx, eax
setl cl
mov dword [ebp - 0x40], ecx
mov esi, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x2c]
xor edx, edx
cmp ecx, eax
setle dl
xor ecx, ecx
mov eax, dword [ebp - 0xf4]
cmp dword [eax + esi*4], edx
setne cl
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], edi
cmp dword [ebp - 0x20], 0x77c5
jge 0x456546
push 0xa90e70
call fcn.0047c13a
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x45656d
xor esi, esi
inc esi
inc dword [ebp - 0x1c]
xor eax, eax
jmp 0x456466
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], esi
jg 0x4566e7
mov dword [ebp - 0x20], 0x50c2
cmp dword [ebp - 0x20], 0x515f
jle 0x4565e9
mov ebx, eax
mov edi, eax
mov esi, eax
mov ecx, eax
mov dword [ebp - 0x40], eax
mov eax, esi
shl eax, cl
and eax, edi
xor eax, ebx
cdq
push edx
push eax
mov ecx, 0xa9e7e8
call fcn.0041c2f7
mov ecx, dword [ebp - 0x40]
inc ecx
mov dword [ebp - 0x40], ecx
cmp ecx, 0x56b1
jl 0x4565a1
inc esi
cmp esi, 0x794f
push 0
pop eax
jl 0x45659c
inc edi
cmp edi, 0x75de
jl 0x45659a
inc ebx
cmp ebx, 0x920
jl 0x456598
xor esi, esi
inc esi
push 3
pop ebx
mov dword [ebp - 0x1c], eax
jmp 0x456677
mov dword [ebp - 0x24], 0x95e0e2bf
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0xf4]
mov eax, dword [ecx + eax*4]
mov dword [ecx + edx*4], eax
mov dword [ebp - 0x24], 0
cmp dword [ebp - 0x24], esi
jg 0x456674
xor edi, edi
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0xf4]
cmp dword [eax + ecx*4], 0xffffffff
jne 0x45663b
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0xf4]
cmp dword [eax + ecx*4], edi
je 0x45663e
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x24]
mov esi, dword [ebp - 0x2c]
xor edx, edx
mov eax, dword [ebp - 0xf4]
cmp dword [eax + ecx*4], 0x618d
setg dl
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
cmp edx, eax
setg cl
mov eax, dword [ebp - 0xf4]
mov dword [eax + esi*4], ecx
inc dword [ebp - 0x24]
xor esi, esi
inc esi
cmp dword [ebp - 0x24], esi
jle 0x456618
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], esi
jle 0x4565f1
mov dword [ebp - 4], 2
cmp dword [ebp - 0x20], 0x4f62
jge 0x45669f
mov edx, 0xa90e84
mov ecx, 0xa9e7e8
call fcn.0041dd76
or dword [ebp - 4], 0xffffffff
xor eax, eax
jmp 0x4566cd
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], 0
je 0x4566dd
push eax
call dword [0xaa1288]
inc dword [ebp - 0x14]
xor eax, eax
jmp 0x45657d
dec dword [ebp - 0x28]
jmp 0x456453
dec dword [ebp - 0x2c]
jmp 0x456439
lea ecx, [ebp - 0xf4]
call fcn.0041c810
mov dword [ebp - 0x20], 0x3df603fa
mov dword [ebp - 0x1c], 0x33037736
mov dword [ebp - 0x50], 0x9918c6a8
mov dword [ebp - 0x34], 0xb42b8ff
mov dword [ebp - 0x48], 0xce570888
mov dword [ebp - 0x3c], 6
mov dword [ebp - 0x2c], 0x5cb3
cmp dword [ebp - 0x2c], 0x5f3c
jle 0x4567c6
xor eax, eax
mov dword [ebp - 0x28], eax
xor ebx, ebx
mov dword [ebp - 0x24], ebx
mov eax, ebx
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x40], 0x2841
mov ebx, dword [ebp - 0x28]
xor esi, esi
xor edi, edi
add eax, esi
and eax, ebx
cdq
push edx
push eax
lea ecx, [ebp - 0xc44]
call fcn.00401a98
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x456779
mov eax, dword [eax]
push eax
call fcn.0047c13a
pop ecx
push edi
push 1
lea ecx, [ebp - 0xc44]
call fcn.0041c762
inc esi
cmp esi, 0x77cc
mov eax, dword [ebp - 0x14]
jl 0x45675d
dec eax
mov dword [ebp - 0x14], eax
dec dword [ebp - 0x40]
jne 0x456759
mov ebx, dword [ebp - 0x24]
inc ebx
mov dword [ebp - 0x24], ebx
cmp ebx, 0x3026
jl 0x45674a
mov eax, dword [ebp - 0x28]
inc eax
mov dword [ebp - 0x28], eax
cmp eax, 0x774
jl 0x456745
xor esi, esi
inc esi
push 3
pop ebx
mov dword [ebp - 0x30], 0x75c2
mov dword [ebp - 4], 4
cmp dword [ebp - 0x2c], 0x5c0f
jge 0x4567e8
push 0xa90ea4
call fcn.0047c13a
pop ecx
or dword [ebp - 4], 0xffffffff
xor eax, eax
jmp 0x456816
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 2
jge 0x456835
mov eax, dword [ebp - 0x2c]
mov dword [ebp + eax*4 - 0x74], 0x68c
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 2
jl 0x45681f
xor eax, eax
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], esi
jge 0x456852
mov eax, dword [ebp - 0x2c]
mov dword [ebp + eax*4 - 0x7c], 0xfffffff7
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], esi
jl 0x45683d
xor eax, eax
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 4
jge 0x456870
mov eax, dword [ebp - 0x2c]
mov dword [ebp + eax*4 - 0x5f8], esi
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 4
jl 0x45685b
xor eax, eax
mov dword [ebp - 0x2c], eax
jmp 0x456886
mov eax, dword [ebp - 0x2c]
mov dword [ebp + eax*4 - 0x378], 0x821d
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], ebx
jl 0x456875
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x1c]
sub ecx, eax
mov eax, dword [ebp - 0x74]
xor edx, edx
cmp ecx, eax
sete dl
mov eax, dword [ebp - 0x70]
xor ecx, ecx
cmp edx, eax
setge cl
cmp ecx, dword [ebp - 0x74]
jle 0x4568c5
cmp dword [ebp - 0x1c], 0
je 0x4568c5
mov ecx, esi
jmp 0x4568c7
xor ecx, ecx
mov eax, dword [ebp - 0x20]
xor edx, edx
cmp eax, ecx
setle dl
mov eax, dword [ebp - 0x70]
xor ecx, ecx
cmp edx, eax
setne cl
xor edx, edx
cmp ecx, 4
setge dl
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp eax, edx
setg cl
cmp ecx, 0xfffd
jae 0x456914
mov dword [ebp - 0x1c], 0
jmp 0x45690c
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x74], 0xfff8
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x4568fe
jmp 0x456931
xor eax, eax
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], al
je 0x456931
push eax
push eax
push 0x84e
push 0x169c
push eax
call dword [0xaa13d4]
mov eax, dword [ebp - 0x378]
dec eax
add eax, dword [ebp - 0x3c]
neg eax
sbb eax, eax
neg eax
mov ecx, dword [ebp - 0x378]
sub ecx, eax
neg ecx
sbb ecx, ecx
inc ecx
mov eax, dword [ebp - 0x7c]
add ecx, eax
mov eax, dword [ebp - 0x7c]
add eax, ecx
mov ecx, dword [ebp - 0x1c]
imul ecx, eax
test ecx, ecx
je 0x456965
mov eax, dword [ebp - 0x74]
mov eax, dword [ebp - 0x378]
mov eax, dword [ebp - 0x74]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x7c]
mov eax, dword [ebp - 0x5f8]
inc dword [ebp - 0x5f8]
mov eax, dword [ebp - 0x70]
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x7c]
mov eax, dword [ebp - 0x70]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x7c]
mov eax, dword [ebp - 0x70]
mov eax, dword [ebp - 0x1c]
sub eax, 0x3a25c5db
neg eax
sbb eax, eax
inc eax
cmp eax, dword [ebp - 0x74]
jl 0x456a5c
push esi
lea ecx, [ebp - 0x17c]
call fcn.0041c40c
mov dword [ebp - 0x14], 0
jmp 0x4569d6
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x17c]
mov dword [eax + ecx*4], 0xfffc
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x4569c3
mov ecx, dword [ebp - 0x3c]
neg ecx
sbb ecx, ecx
neg ecx
mov edx, dword [ebp - 0x17c]
mov eax, dword [edx]
add eax, ecx
jne 0x456a02
cmp dword [ebp - 0x374], eax
mov edx, dword [ebp - 0x17c]
jne 0x456a02
cmp dword [edx], eax
je 0x456a04
mov eax, esi
xor ecx, ecx
cmp dword [edx], eax
setg cl
xor eax, eax
cmp ecx, 6
setne al
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x70]
xor edx, edx
cmp eax, 0x55b5
setl dl
mov eax, dword [ebp - 0x17c]
mov esi, dword [eax]
mov eax, dword [ebp - 0x3c]
sub edx, eax
xor ecx, ecx
test edx, edx
setle cl
mov eax, esi
sub eax, ecx
xor ecx, ecx
cmp eax, 0xffffffff
setge cl
imul ecx, esi
add ecx, dword [ebp - 0x70]
mov dword [ebp - 0x50], ecx
lea ecx, [ebp - 0x17c]
call fcn.0041c810
xor esi, esi
inc esi
jmp 0x456ac5
mov dword [ebp - 0x28], 7
mov dword [ebp - 0x14], 0xc06be8e6
imul eax, dword [ebp - 0x28], 6
test eax, eax
je 0x456aa1
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
xor ecx, ecx
cmp eax, 0x8e06
setne cl
sub ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x70]
sub ecx, eax
mov eax, dword [ebp - 0x48]
imul eax, ecx
sub eax, 0xfffffff7
neg eax
sbb eax, eax
inc eax
add eax, dword [ebp - 0x28]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
xor edx, edx
cmp ecx, eax
setne dl
neg edx
jne 0x456abb
xor eax, eax
cmp dword [ebp - 0x14], eax
mov ecx, eax
je 0x456abd
mov ecx, esi
mov eax, dword [ebp - 0x7c]
add eax, ecx
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x28], 0x3eca4f83
mov dword [ebp - 0x20], 0x1824a8c6
mov dword [ebp - 0x34], 0x6ccb0362
mov dword [ebp - 0x30], 0xe4b28306
mov dword [ebp - 0x34], 0x9d01078
push 4
lea ecx, [ebp - 0x768]
call fcn.0041c40c
push ebx
lea ecx, [ebp - 0x3d8]
call fcn.0041c40c
mov dword [ebp - 0x1c], 0
jmp 0x456b1d
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x768]
mov dword [eax + ecx*4], 0x2b000cd9
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 4
jl 0x456b0a
mov dword [ebp - 0x1c], 0
jmp 0x456b3f
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x3d8]
mov dword [eax + ecx*4], 0xfffffff7
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], ebx
jl 0x456b2c
mov dword [ebp - 0x20], 0
jmp 0x456bc9
mov dword [ebp - 0x14], 0xffffffff
mov dword [ebp - 0x34], 0x327439cb
push 2
lea ecx, [ebp - 0x654]
call fcn.0041c40c
mov dword [ebp - 0x34], 0x3700
mov dword [ebp - 0x14], 0
jmp 0x456b8b
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x654]
mov dword [eax + ecx*4], 0xdb85613
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x456b78
mov dword [ebp - 0x14], 0xffffffe7
jmp 0x456bad
mov byte [ebp - 0x15], 0
cmp byte [ebp - 0x15], 0
je 0x456baa
call dword [0xaa1240]
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xfffffff0
jne 0x456b9a
mov eax, dword [ebp - 0x3d8]
dec dword [eax]
lea ecx, [ebp - 0x654]
call fcn.0041c810
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0xf
jne 0x456b4d
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x20], eax
lea ecx, [ebp - 0x3d8]
call fcn.0041c810
lea ecx, [ebp - 0x768]
call fcn.0041c810
mov dword [ebp - 0x20], 0x7ddc85f7
xor eax, eax
mov dword [ebp - 0x20], eax
jmp 0x456c9c
mov dword [ebp - 0x18c], 0x9b546158
mov dword [ebp - 0x188], 0x9b546158
mov dword [ebp - 0x184], 0x9b546158
mov dword [ebp - 0x180], 0x9b546158
mov dword [ebp - 0x18c], eax
jmp 0x456c90
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x14], 0xfffffff5
jmp 0x456c6b
cmp byte [ebp - 0x15], 0
je 0x456c68
push 0x221e
push 0x1e9d
push 0x1a6d
push 0x2282
push 0x22f6
push 0x1eec
call dword [0xaa1054]
xor eax, eax
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 8
mov byte [ebp - 0x15], al
jl 0x456c3c
cmp byte [ebp - 0x15], 0
je 0x456c8a
push 0xcbe
push eax
push eax
push eax
call dword [0xaa1274]
xor eax, eax
inc dword [ebp - 0x18c]
cmp dword [ebp - 0x18c], 0xd
jl 0x456c30
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 4
jne 0x456c00
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 4
jge 0x456ccb
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xc6c], 0x9b55
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x456cb2
xor eax, eax
mov dword [ebp - 0x3c], eax
jmp 0x456d09
mov dword [ebp - 0x20], 0x252604
mov dword [ebp - 0x20], eax
jmp 0x456d01
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x14], eax
jmp 0x456cf9
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], 0
je 0x456cf6
push eax
call dword [0xaa106c]
xor eax, eax
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jle 0x456ce4
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ebx
jle 0x456cdc
inc dword [ebp - 0x3c]
cmp dword [ebp - 0x3c], ebx
jle 0x456cd0
mov dword [ebp - 0x14], eax
jmp 0x456d24
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x7d0], 9
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x456d13
push esi
lea ecx, [ebp - 0x4e0]
call fcn.0041c40c
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], esi
jge 0x456d56
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x4e0]
or dword [eax + ecx*4], 0xffffffff
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], esi
jl 0x456d3f
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 2
jge 0x456d78
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x11c], 0x7c7ce53d
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x456d5f
xor eax, eax
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], eax
jl 0x456d98
mov dword [ebp - 0x40], 0x4c8d3c89
dec dword [ebp - 0x40]
dec dword [ebp - 0x11c]
jns 0x456d86
mov eax, dword [ebp - 0x4e0]
mov eax, dword [eax]
mov dword [ebp - 0x118], eax
lea ecx, [ebp - 0x4e0]
call fcn.0041c810
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x3c], 0xffffffff
xor eax, eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], esi
jge 0x456ddf
xor edi, edi
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xb4], edi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x456dcd
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0xb4], eax
mov eax, dword [ebp - 0xb4]
mov ecx, dword [ebp - 0x3c]
sub ecx, eax
mov eax, dword [ebp - 0xb4]
xor edx, edx
cmp ecx, eax
sete dl
mov dword [ebp - 0xb4], edx
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
cmp eax, 0xee61
setne cl
xor edx, edx
test ecx, ecx
sets dl
mov eax, dword [ebp - 0x3c]
sub eax, 8
xor ecx, ecx
cmp eax, edx
setg cl
mov eax, dword [ebp - 0x3c]
xor edx, edx
cmp ecx, eax
setne dl
mov edi, 0xab3cf813
cmp edi, edx
sbb edx, edx
neg edx
sub edx, 9
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
cmp edx, eax
setle cl
mov dword [ebp - 0x3c], ecx
xor eax, eax
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], al
je 0x456e6f
push eax
push 0xba8
push 0x1b01
call dword [0xaa10a8]
xor eax, eax
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], ebx
jge 0x456f93
push 2
lea ecx, [ebp - 0x66c]
call fcn.0041c40c
mov dword [ebp - 0x14], 0x490c4d8e
mov dword [ebp - 0x14], 0
jmp 0x456eab
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x66c]
mov dword [eax + ecx*4], 0xd3df
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x456e98
mov dword [ebp - 0x40], 0x7bbd
cmp dword [ebp - 0x40], 0x7f6f
jle 0x456f08
push 0
push 0xb3e
call dword [0xaa13b0]
xor edi, edi
xor esi, esi
mov eax, esi
or eax, edi
cdq
push edx
push eax
mov ecx, 0xa9e7e8
call fcn.0041c2f7
inc esi
cmp esi, 0x6034
jl 0x456ed2
inc edi
cmp edi, 0x76d8
jl 0x456ed0
push 0xc14
push 0x5b1
call dword [0xaa12e8]
xor esi, esi
inc esi
mov dword [ebp - 0x14], esi
xor eax, eax
cmp dword [ebp - 0x14], eax
jl 0x456f29
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], 0
je 0x456f24
push eax
call dword [0xaa125c]
xor eax, eax
dec dword [ebp - 0x14]
jns 0x456f12
mov dword [ebp - 4], 6
cmp dword [ebp - 0x40], 0x7b14
jge 0x456f48
mov edx, 0xa90f20
mov ecx, 0xa9e7e8
call fcn.0041dd76
or dword [ebp - 4], 0xffffffff
jmp 0x456f72
lea ecx, [ebp - 0x66c]
call fcn.0041c810
mov eax, dword [ebp - 0x28]
mov dword [ebp + eax*4 - 0x7d0], 0xfffffff7
inc dword [ebp - 0x28]
jmp 0x456e72
mov dword [ebp - 0x20], 0x9b55bb2c
mov dword [ebp - 0x34], 0x7a73d2d6
mov dword [ebp - 0x34], 0xbd4dfbd6
xor edi, edi
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x34], 0x46ddcd16
mov dword [ebp - 0x34], 0xffffffff
push esi
lea ecx, [ebp - 0x684]
call fcn.0041c40c
xor eax, eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x14], eax
jmp 0x456fe4
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x684]
mov dword [eax + ecx*4], 0xf609b2b5
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x456fd1
mov dword [ebp - 0x20], 0xffffffef
jmp 0x457055
mov dword [ebp - 0x34], 0x417be18
mov dword [ebp - 0x34], 0xfe5e81a7
mov dword [ebp - 0x34], 5
mov dword [ebp - 0x34], 0xffffffff
push 4
lea ecx, [ebp - 0x738]
call fcn.0041c40c
mov dword [ebp - 0x34], 0x51ae
mov dword [ebp - 0x40], 0xfb29d945
mov dword [ebp - 0x14], edi
jmp 0x45703e
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x738]
or dword [eax + ecx*4], 0xffffffff
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x45702e
inc dword [ebp - 0x40]
lea ecx, [ebp - 0x738]
call fcn.0041c810
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], esi
jge 0x456ff2
lea ecx, [ebp - 0x684]
call fcn.0041c810
mov dword [ebp - 0x40], 0x486b
cmp dword [ebp - 0x40], 0x49cb
jle 0x4570c6
xor ebx, ebx
xor esi, esi
xor edi, edi
mov eax, ebx
mov ecx, esi
sar eax, cl
cdq
push edx
push eax
lea ecx, [ebp - 0x980]
call fcn.00401a98
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x457099
mov eax, dword [eax]
push eax
call fcn.0047c13a
pop ecx
push edi
push 1
lea ecx, [ebp - 0x980]
call fcn.0041c762
inc esi
cmp esi, 0x1fb8
jl 0x45707b
inc ebx
cmp ebx, 0x736c
jl 0x457077
xor esi, esi
inc esi
push 3
pop ebx
mov dword [ebp - 0x20], 0xfffffff7
mov dword [ebp - 0x14], 0
jmp 0x4570e7
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x824], 0x7be9fb1c
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x4570d6
mov byte [ebp - 0x15], 0
cmp byte [ebp - 0x15], 0
je 0x457102
push 0x7b9
call dword [0xaa1064]
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x20]
neg ecx
sbb ecx, ecx
neg ecx
mov eax, dword [ebp - 0x20]
xor edx, edx
cmp ecx, eax
setge dl
imul edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
imul eax, dword [ebp - 0x20]
xor ecx, ecx
cmp eax, edx
setne cl
mov dword [ebp - 0x820], ecx
mov dword [ebp - 4], 8
cmp dword [ebp - 0x40], 0x4516
jge 0x45714b
push 0xa90f60
call fcn.0047c13a
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x457175
mov dword [ebp - 0x28], 0xdb3ae355
mov dword [ebp - 0x28], 6
jmp 0x45720e
push 2
lea ecx, [ebp - 0x790]
call fcn.0041c40c
mov dword [ebp - 0x20], 0x83111738
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 2
jge 0x4571c0
xor edi, edi
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x790]
mov dword [eax + ecx*4], edi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x4571a9
xor eax, eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], esi
jg 0x4571eb
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], 0
je 0x4571dd
push eax
push 0x1033
call dword [0xaa109c]
mov eax, dword [ebp - 0x20]
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], esi
push 0
pop eax
jle 0x4571c8
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], 0
je 0x457200
push eax
push 0x23d1
call dword [0xaa12a4]
lea ecx, [ebp - 0x790]
call fcn.0041c810
dec dword [ebp - 0x28]
cmp dword [ebp - 0x28], 0xfffffff5
je 0x457188
mov dword [ebp - 0x20], 0x7d45db34
mov dword [ebp - 0x30], 0x45ccb972
mov dword [ebp - 0x40], 0x87a5eafb
xor eax, eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 2
jge 0x457254
mov eax, dword [ebp - 0x2c]
mov dword [ebp + eax*4 - 0x720], 0x64a11600
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 2
jl 0x45723b
xor eax, eax
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 2
jge 0x457276
mov eax, dword [ebp - 0x2c]
mov dword [ebp + eax*4 - 0x80c], 0xf5f40e13
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 2
jl 0x45725d
xor eax, eax
mov dword [ebp - 0x2c], eax
jmp 0x45728c
mov eax, dword [ebp - 0x2c]
mov dword [ebp + eax*4 - 0x124], 0x4e1054d8
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], esi
jl 0x45727b
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x71c]
xor ecx, ecx
cmp eax, 0xff12
setne cl
xor eax, eax
cmp ecx, 0x23b4
setle al
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x44], eax
inc dword [ebp - 0x124]
mov dword [ebp - 0x34], 0x1020
mov dword [ebp - 0x40], 0x18dc
cmp dword [ebp - 0x40], 0x1c86
jle 0x457326
xor eax, eax
push eax
push eax
call dword [section..idata]
xor edi, edi
xor esi, esi
mov eax, edi
mov ecx, esi
shl eax, cl
cdq
push edx
push eax
mov ecx, 0xa9e7e8
call fcn.0041c2f7
inc esi
cmp esi, 0x5286
jl 0x4572f5
inc edi
cmp edi, 0x2ce8
jl 0x4572f3
xor edi, edi
push edi
call dword [0xaa12e0]
xor esi, esi
inc esi
xor eax, eax
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], al
je 0x457337
push eax
call dword [0xaa107c]
mov dword [ebp - 4], 0xa
cmp dword [ebp - 0x40], 0x17f9
jge 0x457356
mov edx, 0xa90fd8
mov ecx, 0xa9e7e8
call fcn.0041dd76
or dword [ebp - 4], 0xffffffff
xor eax, eax
jmp 0x457384
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], 0
je 0x4573a2
push 0x1173
push 0xf9
push 0xf21
call dword [0xaa13c0]
mov dword [ebp - 0x34], 8
mov dword [ebp - 0x20], 0xffffffff
mov dword [ebp - 0x40], esi
push 4
lea ecx, [ebp - 0x69c]
call fcn.0041c40c
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 4
jge 0x4573e3
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x69c]
or dword [eax + ecx*4], 0xffffffff
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x4573cb
xor eax, eax
mov dword [ebp - 0x20], 2
mov edi, 0xa0d018d3
cmp dword [ebp - 0x20], 0xffffffe6
jg 0x457574
mov dword [ebp - 0x40], 0xe704f3d4
mov dword [ebp - 0x34], eax
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], 0
je 0x457413
push eax
call dword [0xaa124c]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x40]
xor ecx, ecx
cmp eax, 0xe563decf
setne cl
sub ecx, 0xcbe
jne 0x457432
xor eax, eax
cmp dword [ebp - 0x40], eax
je 0x457434
mov eax, esi
cmp edi, eax
sbb eax, eax
neg eax
neg eax
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x40]
push ebx
lea ecx, [ebp - 0x3f0]
call fcn.0041c40c
mov dword [ebp - 0x14], 0
jmp 0x45746a
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x3f0]
mov dword [eax + ecx*4], 0x231
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x457457
mov dword [ebp - 0x3c], 0x2f0
cmp dword [ebp - 0x3c], 0x317
jle 0x45750c
xor ecx, ecx
mov dword [ebp - 0x14], ecx
xor eax, eax
mov dword [ebp - 0x28], eax
xor ebx, ebx
mov edx, ecx
mov ecx, eax
shl edx, cl
mov dword [ebp - 0x40], edx
xor esi, esi
xor edi, edi
mov eax, esi
and eax, ebx
and eax, edx
cdq
push edx
push eax
lea ecx, [ebp - 0xb00]
call fcn.00401a98
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x4574ba
mov eax, dword [eax]
push eax
call fcn.0047c13a
pop ecx
push edi
push 1
lea ecx, [ebp - 0xb00]
call fcn.0041c762
inc esi
cmp esi, 0x4743
mov edx, dword [ebp - 0x40]
jl 0x45749c
inc ebx
cmp ebx, 0x2a3c
jl 0x457498
mov eax, dword [ebp - 0x28]
inc eax
mov dword [ebp - 0x28], eax
cmp eax, 0x198
mov ecx, dword [ebp - 0x14]
jl 0x45748d
inc ecx
mov dword [ebp - 0x14], ecx
cmp ecx, 0x3725
jl 0x457488
xor esi, esi
inc esi
push 3
pop ebx
mov edi, 0xa0d018d3
mov eax, dword [ebp - 0x3f0]
inc dword [eax + 8]
mov dword [ebp - 4], 0xc
cmp dword [ebp - 0x3c], 0x245
jge 0x457530
push 0xa91038
call fcn.0047c13a
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x45755f
lea ecx, [ebp - 0x3f0]
call fcn.0041c810
dec dword [ebp - 0x20]
xor eax, eax
jmp 0x4573ef
lea ecx, [ebp - 0x69c]
call fcn.0041c810
xor eax, eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x3c], 0x589e
cmp dword [ebp - 0x3c], 0x5b01
jle 0x45762c
mov ecx, eax
mov dword [ebp - 0x14], ecx
jmp 0x4575a1
xor eax, eax
mov dword [ebp - 0x28], eax
jmp 0x4575a8
xor eax, eax
mov edx, eax
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x20], 0x44f3
jmp 0x4575b8
xor eax, eax
mov esi, eax
mov ebx, ecx
and ebx, edx
xor edi, edi
mov eax, esi
xor eax, ebx
cdq
push edx
push eax
lea ecx, [ebp - 0x9b0]
call fcn.00401a98
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x4575dc
mov eax, dword [eax]
push eax
call fcn.0047c13a
pop ecx
push edi
push 1
lea ecx, [ebp - 0x9b0]
call fcn.0041c762
inc esi
cmp esi, 0x7b64
jl 0x4575c0
mov ebx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x40]
add edx, ebx
mov dword [ebp - 0x40], edx
dec dword [ebp - 0x20]
mov ecx, dword [ebp - 0x14]
jne 0x4575b6
inc ebx
mov dword [ebp - 0x28], ebx
cmp ebx, 0x3f2b
jl 0x4575a6
inc ecx
mov dword [ebp - 0x14], ecx
cmp ecx, 0xd8d
jl 0x45759f
xor esi, esi
inc esi
mov dword [ebp - 4], 0x10
cmp dword [ebp - 0x3c], 0x5881
jge 0x457647
push 0xa91060
call fcn.0047c13a
pop ecx
or dword [ebp - 4], 0xffffffff
xor eax, eax
jmp 0x457672
push 3
pop ebx
mov dword [ebp - 0xe0], 0xe91a049f
mov dword [ebp - 0xdc], 0xe91a049f
mov dword [ebp - 0xd8], 0xe91a049f
mov dword [ebp - 0xd4], 0xe91a049f
mov dword [ebp - 0x40], 0xffffffff
mov dword [ebp - 0x28], 0x1d7feae2
mov dword [ebp - 0x40], 0x1ef5
cmp dword [ebp - 0x40], 0x21c0
jle 0x4576f3
push eax
push 0xa93
call dword [0xaa1314]
xor edi, edi
xor esi, esi
mov eax, edi
mov ecx, esi
sar eax, cl
cdq
push edx
push eax
mov ecx, 0xa9e7e8
call fcn.0041c2f7
inc esi
cmp esi, 0x5eec
jl 0x4576cb
inc edi
cmp edi, 0x5b4f
jl 0x4576c9
xor esi, esi
inc esi
mov dword [ebp - 4], 0x12
cmp dword [ebp - 0x40], 0x1e6b
jge 0x457712
mov edx, 0xa910c0
mov ecx, 0xa9e7e8
call fcn.0041dd76
or dword [ebp - 4], 0xffffffff
xor eax, eax
jmp 0x457740
mov dword [ebp - 0x30], 0xe1b8d813
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], esi
jge 0x457762
xor edi, edi
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x60], edi
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], esi
jl 0x457751
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 2
jge 0x457780
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x3a0], esi
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x45776b
xor eax, eax
mov dword [ebp - 0x60], ebx
cmp dword [ebp - 0x60], eax
jl 0x4578b5
xor edi, edi
mov dword [ebp - 0x40], 0xc6548aa
mov eax, dword [ebp - 0x60]
cmp dword [ebp + eax*4 - 0xe0], edi
je 0x4578a3
mov eax, dword [ebp - 0x60]
mov eax, dword [ebp + eax*4 - 0xe0]
mov eax, dword [ebp - 0x60]
cmp dword [ebp + eax*4 - 0xe0], edi
jne 0x4577c4
xor eax, eax
xor edi, edi
cmp dword [ebp - 0x60], eax
je 0x4577c6
mov eax, esi
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x60]
mov ecx, dword [ebp + eax*4 - 0xe0]
mov eax, dword [ebp - 0x40]
add eax, 0x58efa97f
cmp ecx, eax
jg 0x4577f1
mov eax, dword [ebp - 0x60]
cmp dword [ebp + eax*4 - 0xe0], edi
jne 0x4577f1
xor eax, eax
xor edi, edi
jmp 0x4577f3
mov eax, esi
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x60]
mov ecx, dword [ebp + eax*4 - 0xe0]
mov eax, dword [ebp - 0x28]
xor edx, edx
cmp eax, ecx
setne dl
mov eax, dword [ebp - 0x60]
mov eax, dword [ebp + eax*4 - 0xe0]
xor ebx, ebx
cmp edx, eax
setge bl
mov eax, dword [ebp - 0x60]
mov eax, dword [ebp + eax*4 - 0xe0]
xor ecx, ecx
cmp eax, ebx
setge cl
mov eax, dword [ebp - 0x60]
xor edx, edx
cmp ecx, eax
setl dl
mov eax, dword [ebp - 0x60]
mov eax, dword [ebp + eax*4 - 0xe0]
sub edx, eax
mov eax, dword [ebp - 0x60]
xor ecx, ecx
cmp edx, eax
sete cl
mov eax, dword [ebp - 0x60]
mov eax, dword [ebp + eax*4 - 0xe0]
xor ebx, ebx
cmp ecx, eax
setge bl
mov dword [ebp - 0x39c], ebx
mov eax, dword [ebp - 0x60]
mov eax, dword [ebp + eax*4 - 0xe0]
xor edx, edx
cmp ebx, eax
setle dl
mov eax, dword [ebp - 0x60]
xor ecx, ecx
cmp edx, eax
setge cl
imul ecx, ecx, 0x524
add ecx, 0x9c30
mov eax, dword [ebp - 0x60]
xor edx, edx
cmp ecx, eax
setl dl
cmp edx, 0xfffffff7
jne 0x4578a3
mov eax, esi
jmp 0x4578a7
xor eax, eax
xor edi, edi
mov dword [ebp - 0x30], eax
dec dword [ebp - 0x60]
jns 0x45778e
xor eax, eax
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0x16
je 0x4578d6
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x3a0]
mov dword [ebp - 0x30], eax
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 0x16
push 0
pop eax
jne 0x4578be
mov dword [ebp - 0x3c], 0x3ce6
cmp dword [ebp - 0x3c], 0x3e7c
jle 0x45797f
push eax
call dword [0xaa1104]
xor eax, eax
mov dword [ebp - 0x14], eax
xor ebx, ebx
mov dword [ebp - 0x28], ebx
xor esi, esi
mov dword [ebp - 0x20], esi
mov ecx, ebx
and ecx, eax
mov dword [ebp - 0x30], ecx
xor edi, edi
mov ebx, esi
mov dword [ebp - 0x40], 0x200b
mov esi, dword [ebp - 0x30]
mov eax, ebx
xor eax, esi
cdq
push edx
push eax
lea ecx, [ebp - 0xbb4]
call fcn.00401a98
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x457931
mov eax, dword [eax]
push eax
call fcn.0047c13a
pop ecx
push edi
push 1
lea ecx, [ebp - 0xbb4]
call fcn.0041c762
dec ebx
dec dword [ebp - 0x40]
jne 0x457915
mov esi, dword [ebp - 0x20]
inc esi
mov dword [ebp - 0x20], esi
cmp esi, 0x537c
jl 0x457909
mov ebx, dword [ebp - 0x28]
inc ebx
mov dword [ebp - 0x28], ebx
cmp ebx, 0x40d4
mov eax, dword [ebp - 0x14]
jl 0x4578fb
inc eax
mov dword [ebp - 0x14], eax
cmp eax, 0x80f
jl 0x4578f6
xor esi, esi
inc esi
mov dword [ebp - 0x34], 0x7ad95e17
mov dword [ebp - 4], 0x14
cmp dword [ebp - 0x3c], 0x3c7f
jge 0x4579a1
push 0xa91128
call fcn.0047c13a
pop ecx
or dword [ebp - 4], 0xffffffff
xor eax, eax
jmp 0x4579cc
mov dword [ebp - 0x40], 0x5de6
cmp dword [ebp - 0x40], 0x61aa
jle 0x457a49
mov ecx, eax
mov dword [ebp - 0x14], ecx
jmp 0x4579e5
xor eax, eax
mov ebx, eax
jmp 0x4579eb
xor eax, eax
mov esi, eax
xor edi, edi
mov eax, ebx
cdq
idiv esi
xor edx, ecx
mov eax, edx
cdq
push edx
push eax
lea ecx, [ebp - 0x9e0]
call fcn.00401a98
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x457a10
mov eax, dword [eax]
push eax
call fcn.0047c13a
pop ecx
push edi
push 1
lea ecx, [ebp - 0x9e0]
call fcn.0041c762
inc esi
cmp esi, 0x7ea3
mov ecx, dword [ebp - 0x14]
jl 0x4579ef
inc ebx
cmp ebx, 0x61a5
jl 0x4579e9
inc ecx
mov dword [ebp - 0x14], ecx
cmp ecx, 0x380b
jl 0x4579e3
xor esi, esi
inc esi
mov dword [ebp - 0x20], 0xfffffff7
mov dword [ebp - 4], 0x16
cmp dword [ebp - 0x40], 0x5bde
jge 0x457a6b
push 0xa911bc
call fcn.0047c13a
pop ecx
or dword [ebp - 4], 0xffffffff
xor eax, eax
jmp 0x457a99
mov dword [ebp - 0x14], 0x2ee0
cmp dword [ebp - 0x14], 0x306f
jle 0x457af3
mov ebx, eax
mov dword [ebp - 0x40], eax
mov edi, eax
mov esi, eax
mov eax, edi
and eax, ebx
mov dword [ebp - 0x30], eax
mov ebx, eax
mov eax, esi
xor eax, ebx
cdq
push edx
push eax
mov ecx, 0xa9e7e8
call fcn.0041c2f7
inc esi
cmp esi, 0x581
jl 0x457abb
inc edi
cmp edi, 0x52d3
push 0
pop eax
mov ebx, dword [ebp - 0x40]
jl 0x457ab0
inc ebx
mov dword [ebp - 0x40], ebx
cmp ebx, 0xce6
jl 0x457aae
xor esi, esi
inc esi
mov dword [ebp - 4], 0x18
cmp dword [ebp - 0x14], 0x2daf
jge 0x457b12
mov edx, 0xa9120c
mov ecx, 0xa9e7e8
call fcn.0041dd76
or dword [ebp - 4], 0xffffffff
xor eax, eax
jmp 0x457b40
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 4
jge 0x457b62
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x83c], 0x7be9fb1c
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x457b49
xor eax, eax
mov byte [ebp - 0x15], al
mov dword [ebp - 0x40], 0x333d
cmp dword [ebp - 0x40], 0x35d2
jle 0x457be3
mov edx, eax
mov dword [ebp - 0x14], edx
jmp 0x457b7e
mov ebx, eax
jmp 0x457b84
mov esi, eax
xor edi, edi
mov eax, ebx
mov ecx, esi
shl eax, cl
or eax, edx
cdq
push edx
push eax
lea ecx, [ebp - 0x8e4]
call fcn.00401a98
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x457ba8
xor edi, edi
cmp byte [ebp - 0x15], 0
je 0x457bf6
push 0x7b9
call dword [0xaa1064]
mov dword [ebp - 4], 0x1a
cmp dword [ebp - 0x40], 0x31fb
jge 0x457c11
push 0xa91228
call fcn.0047c13a
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x457c3d