Function at 0x4c33a0
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5a9b2d
mov eax, dword fs:[0]
push eax
sub esp, 0xc0
mov eax, dword [0x5f13cc]
xor eax, esp
mov dword [esp + 0xb8], eax
push ebx
push esi
push edi
mov eax, dword [0x5f13cc]
xor eax, esp
push eax
lea eax, [esp + 0xd0]
mov dword fs:[0], eax
mov esi, ecx
mov eax, dword [esi + 0xdc]
test eax, eax
mov dword [esp + 0x10], esi
jbe 0x4c367c
cmp dword [esi + 0x94], 0
jbe 0x4c3726
mov eax, dword [0x5fcd20]
mov edx, dword [eax + 0xc]
mov ecx, 0x5fcd20
call edx
add eax, 0x10
mov dword [esp + 0x14], eax
mov dword [esp + 0xd8], 0
mov eax, dword [0x5fcd20]
mov edx, dword [eax + 0xc]
mov ecx, 0x5fcd20
call edx
add eax, 0x10
mov dword [esp + 0x18], eax
mov byte [esp + 0xd8], 1
mov eax, dword [esi + 0xd8]
test eax, eax
je 0x4c346b
mov edx, dword [esi + 0xec]
cmp eax, edx
je 0x4c346b
mov ecx, eax
mov eax, dword [eax + 0xc]
cmp eax, edx
je 0x4c346d
lea ecx, [ecx]
mov ecx, eax
mov eax, dword [ecx + 0xc]
cmp eax, edx
jne 0x4c3460
jmp 0x4c346d
xor ecx, ecx
test ecx, ecx
mov dword [esp + 0x1c], ecx
je 0x4c3629
lea esp, [esp]
mov edi, dword [esp + 0x1c]
lea eax, [esi + 0xd8]
push eax
mov eax, edi
call fcn.004c4960
mov ebx, dword [edi]
mov dword [esp + 0x1c], eax
mov eax, 0x10624dd3
mul ebx
mov edi, edx
shr edi, 6
lea edx, [esi + 0x90]
call fcn.004c4bb0
test eax, eax
mov dword [esp + 0x24], eax
push ebx
jne 0x4c34cc
push str.lost_lemma:__u
mov ecx, esi
call fcn.004aee70
add esp, 8
jmp 0x4c361e
mov edx, dword [esp + 0x14]
imul edi, edi, 0x3e8
mov eax, ebx
sub eax, edi
add edx, 0x34
mov dword [esp + 0x30], eax
call fcn.004c1240
mov esi, eax
test esi, esi
jne 0x4c3503
mov ecx, dword [esp + 0x10]
push ebx
push str.lost_freq:__u
call fcn.004aee70
add esp, 8
jmp 0x4c361a
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 4]
lea edx, [esp + 0x23]
push edx
lea eax, [esp + 0x2c]
push eax
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x20]
push eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x38], 0
mov byte [esp + 0x33], 0
call fcn.004c15b0
test eax, eax
jge 0x4c354f
mov ecx, dword [esp + 0x10]
push ebx
push str.no_record:__u
call fcn.004aee70
add esp, 8
jmp 0x4c361a
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx - 0xc]
lea edx, [eax + eax]
push edx
xor eax, eax
call fcn.0040c5c0
add esp, 4
cmp eax, dword [esi]
je 0x4c357f
mov ecx, dword [esp + 0x10]
push ebx
push str.crc_checksum_error:__u
call fcn.004aee70
add esp, 8
jmp 0x4c361a
push 0x7e
lea eax, [esp + 0x4a]
push 0
push eax
mov word [esp + 0x50], 0
call fcn.00580260
mov ebx, dword [esp + 0x20]
add esp, 0xc
lea ecx, [esp + 0x44]
push 0x40
push ecx
mov eax, ebx
lea edi, [esp + 0x44]
call fcn.004d30b0
mov edx, dword [esp + 0x18]
mov ecx, dword [edx + 0x110]
mov dl, byte [esp + 0x2b]
mov edi, dword [esp + 0x20]
mov eax, dword [edi - 0xc]
add esp, 8
neg dl
push 3
sbb edx, edx
and edx, 0x10
push edx
movzx edx, word [esi + 4]
push edx
push eax
push 0
push 0
push 0
push ecx
mov ecx, edi
lea edx, [esp + 0x5c]
call fcn.004db860
cmp eax, 1
jle 0x4c35f7
mov ecx, dword [esp + 0x10]
add dword [ecx + 0x118], 1
test eax, eax
mov eax, str.successed
jne 0x4c3605
mov eax, str.failed
push eax
movzx eax, word [esi + 4]
push eax
push edi
push ebx
push str.Add:__s__s__u__s.
call fcn.00515760
add esp, 0x14
mov esi, dword [esp + 0x10]
cmp dword [esp + 0x1c], 0
jne 0x4c3480
mov byte [esp + 0xd8], 0
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4c3651
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0xd8], 0xffffffff
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4c367c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [esi + 0x94], 0
jbe 0x4c3726
mov ecx, dword [esi + 0x90]
test ecx, ecx
je 0x4c36af
mov edx, dword [esi + 0xa4]
cmp ecx, edx
je 0x4c36af
mov eax, dword [ecx + 0x10]
cmp eax, edx
je 0x4c36b1
mov ecx, eax
mov eax, dword [ecx + 0x10]
cmp eax, edx
jne 0x4c36a4
jmp 0x4c36b1
xor ecx, ecx
cmp dword [esi + 0x40], 0x10
mov edi, dword [ecx]
lea ebx, [esi + 0x34]
jb 0x4c36c1
mov eax, dword [ebx + 4]
jmp 0x4c36c4
lea eax, [ebx + 0x18]
mov edx, dword [eax + 0xc]
mov eax, 0x10624dd3
mul edx
shr edx, 6
cmp edi, edx
jne 0x4c3726
cmp dword [ebx + 0xc], 0x10
mov esi, dword [ecx + 4]
jb 0x4c36e3
mov eax, dword [ebx + 4]
jmp 0x4c36e6
lea eax, [ebx + 0x18]
mov ecx, dword [eax + 0xc]
mov eax, 0x10624dd3
mul ecx
shr edx, 6
imul edx, edx, 0x3e8
sub ecx, edx
jne 0x4c3702
mov ecx, 0x3e8
movzx eax, word [esi + 0xc]
cmp eax, ecx
je 0x4c3726
jbe 0x4c3713
push ecx
push esi
call fcn.004c1910
movzx ecx, word [esi + 0xc]
imul edi, edi, 0x3e8
add edi, ecx
mov eax, ebx
call fcn.004c12b0
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0x60]
test eax, eax
lea ebx, [esi + 0x60]
mov dword [esp + 0x18], ebx
je 0x4c3753
mov edx, dword [ebx + 0x14]
cmp eax, edx
je 0x4c3753
mov ecx, eax
mov eax, dword [eax + 0x18]
cmp eax, edx
je 0x4c3755
mov ecx, eax
mov eax, dword [ecx + 0x18]
cmp eax, edx
jne 0x4c3748
jmp 0x4c3755
xor ecx, ecx
test ecx, ecx
mov edi, ecx
je 0x4c37b8
jmp 0x4c3760
test edi, edi
mov eax, edi
jne 0x4c376a
xor edi, edi
jmp 0x4c37a9
mov ecx, dword [edi + 0x1c]
mov edx, dword [ebx + 0x14]
cmp ecx, edx
je 0x4c378c
test ecx, ecx
je 0x4c3766
mov edi, ecx
mov ecx, dword [ecx + 0x18]
cmp ecx, edx
je 0x4c37a9
mov edi, ecx
mov ecx, dword [edi + 0x18]
cmp ecx, edx
jne 0x4c3781
jmp 0x4c37a9
mov ecx, dword [edi + 0x20]
cmp ecx, edx
je 0x4c37a5
cmp edi, dword [ecx + 0x1c]
jne 0x4c37a1
mov edi, ecx
mov ecx, dword [ecx + 0x20]
cmp ecx, edx
jne 0x4c3793
cmp ecx, edx
jne 0x4c37a7
xor ecx, ecx
mov edi, ecx
test byte [eax + 0x11], 0x80
je 0x4c37b4
call fcn.004c42c0
test edi, edi
jne 0x4c3760
cmp dword [esi + 0x64], 0
jbe 0x4c39e4
mov eax, ebx
mov ecx, dword [eax]
test ecx, ecx
je 0x4c37e3
mov edx, dword [eax + 0x14]
cmp ecx, edx
je 0x4c37e3
mov eax, dword [ecx + 0x18]
cmp eax, edx
je 0x4c37e5
mov ecx, eax
mov eax, dword [ecx + 0x18]
cmp eax, edx
jne 0x4c37d8
jmp 0x4c37e5
xor ecx, ecx
test ecx, ecx
mov dword [esp + 0x34], ecx
je 0x4c39e4
mov eax, esi
lea edx, [eax + 0x90]
add eax, 0x34
mov dword [esp + 0x2c], edx
mov dword [esp + 0x24], eax
mov edi, dword [esp + 0x34]
xor esi, esi
cmp edi, esi
mov ebx, edi
mov dword [esp + 0x38], ebx
je 0x4c3856
mov eax, dword [esp + 0x18]
mov edx, dword [edi + 0x1c]
mov ecx, dword [eax + 0x14]
cmp edx, ecx
je 0x4c383d
cmp edx, esi
je 0x4c3856
mov eax, dword [edx + 0x18]
cmp eax, ecx
je 0x4c3839
lea ecx, [ecx]
mov edx, eax
mov eax, dword [edx + 0x18]
cmp eax, ecx
jne 0x4c3830
mov eax, edx
jmp 0x4c3858
mov eax, dword [edi + 0x20]
cmp eax, ecx
je 0x4c3856
cmp edi, dword [eax + 0x1c]
jne 0x4c3852
mov edi, eax
mov eax, dword [eax + 0x20]
cmp eax, ecx
jne 0x4c3844
cmp eax, ecx
jne 0x4c3858
xor eax, eax
mov ecx, dword [ebx + 0xc]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x24]
cmp dword [eax + 0xc], 0x10
mov dword [esp + 0x30], ecx
jb 0x4c3876
mov eax, dword [eax + 4]
jmp 0x4c3879
add eax, 0x18
mov ecx, dword [eax + 0xc]
mov eax, 0x10624dd3
mul ecx
mov edi, edx
mov edx, dword [esp + 0x2c]
shr edi, 6
call fcn.004c4bb0
cmp eax, esi
je 0x4c38a1
mov edx, dword [eax + 4]
mov dword [esp + 0x14], edx
jmp 0x4c3976
push 0x7fc
call fcn.00578e5f
add esp, 4
cmp eax, esi
je 0x4c38fa
mov dword [eax + 0x7e4], esi
mov dword [eax + 0x7e8], esi
mov dword [eax + 0x7ec], esi
mov dword [eax + 0x7f0], esi
mov dword [eax + 0x7f4], 0x80
mov byte [eax + 0x7f8], 0
mov dword [eax], 0x53444653
mov word [eax + 4], 0x100
mov dword [eax + 8], esi
mov word [eax + 0xc], si
mov byte [eax + 7], 0
mov byte [eax + 6], 0xe
mov ebx, eax
jmp 0x4c38fc
xor ebx, ebx
cmp ebx, esi
mov dword [esp + 0x14], ebx
je 0x4c39e4
mov dword [esp + 0x28], 0
mov dword [esp + 0xd8], 2
mov ecx, dword [esp + 0x2c]
lea esi, [esp + 0x28]
mov eax, edi
call fcn.004c4180
mov dword [esp + 0xd8], 0xffffffff
mov esi, dword [esp + 0x28]
test esi, esi
mov dword [eax + 4], ebx
je 0x4c3976
mov eax, dword [esi + 0x7e4]
xor edi, edi
cmp eax, edi
je 0x4c396d
push eax
call fcn.0057876f
add esp, 4
mov dword [esi + 0x7e4], edi
mov dword [esi + 0x7ec], edi
mov dword [esi + 0x7f0], edi
mov dword [esi + 0x7e8], edi
push esi
call fcn.00578327
add esp, 4
cmp dword [esp + 0x14], 0
je 0x4c39e4
mov esi, dword [esp + 0x38]
movzx ebx, byte [esi + 0x10]
mov eax, dword [esi + 8]
mov edi, dword [eax - 0xc]
mov ecx, dword [esi + 4]
mov edx, dword [ecx - 0xc]
shr bl, 4
and ebx, 0xffffff01
push ebx
mov ebx, dword [esi + 0xc]
push ebx
push edi
push eax
mov eax, dword [esp + 0x24]
push edx
push ecx
push eax
call fcn.004c1470
test eax, eax
jl 0x4c39d9
mov ecx, dword [esi]
mov dx, word [esp + 0x30]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x24]
mov word [esp + 0x40], dx
lea edx, [esp + 0x3c]
call fcn.004c1100
mov eax, dword [esp + 0x10]
add dword [eax + 0x11c], 1
cmp dword [esp + 0x1c], 0
jne 0x4c3804
mov edi, dword [esp + 0x18]
call fcn.004c03e0
mov eax, dword [esp + 0x10]
xor esi, esi
lea ecx, [eax + 0x90]
mov dword [eax + 0xf8], esi
mov dword [eax + 0xf4], esi
mov eax, dword [ecx]
cmp eax, esi
je 0x4c3a2b
mov edx, dword [ecx + 0x14]
cmp eax, edx
je 0x4c3a2b
mov ecx, eax
mov eax, dword [eax + 0xc]
cmp eax, edx
je 0x4c3a2d
jmp 0x4c3a20
mov ecx, eax
mov eax, dword [ecx + 0xc]
cmp eax, edx
jne 0x4c3a20
jmp 0x4c3a2d
xor ecx, ecx
cmp ecx, esi
mov dword [esp + 0x24], ecx
je 0x4c3c8b
mov edx, dword [esp + 0x24]
test edx, edx
mov esi, edx
mov dword [esp + 0x34], esi
je 0x4c3a92
mov ecx, dword [esp + 0x10]
mov eax, dword [edx + 0x10]
add ecx, 0x90
mov ecx, dword [ecx + 0x14]
cmp eax, ecx
je 0x4c3a75
test eax, eax
je 0x4c3a92
mov edx, eax
mov eax, dword [eax + 0xc]
cmp eax, ecx
je 0x4c3a71
mov edx, eax
mov eax, dword [edx + 0xc]
cmp eax, ecx
jne 0x4c3a68
mov eax, edx
jmp 0x4c3a94
mov eax, dword [edx + 0x14]
cmp eax, ecx
je 0x4c3a92
lea esp, [esp]
cmp edx, dword [eax + 0x10]
jne 0x4c3a8e
mov edx, eax
mov eax, dword [eax + 0x14]
cmp eax, ecx
jne 0x4c3a80
cmp eax, ecx
jne 0x4c3a94
xor eax, eax
mov edi, dword [esi + 4]
cmp byte [edi + 0x7f8], 0
mov dword [esp + 0x18], eax
mov dword [esp + 0x24], eax
je 0x4c3c6d
mov eax, dword [esp + 0x34]
mov ecx, dword [eax]
movzx eax, word [edi + 0xc]
movzx edx, byte [edi + 6]
lea esi, [edx + eax*2]
add esi, dword [edi + 8]
mov dword [esp + 0x30], ecx
lea eax, [esi + 0x28]
cmp eax, 0x80
mov dword [esp + 0x14], eax
jge 0x4c3ada
mov dword [esp + 0x14], 0x80
mov ecx, dword [esp + 0x14]
add ecx, esi
push ecx
call fcn.0057740a
mov ebx, eax
add esp, 4
mov dword [esp + 0x38], ebx
test ebx, ebx
lea edx, [ebx + esi]
mov dword [esp + 0xd8], 3
mov dword [esp + 0x1c], edx
je 0x4c3c59
push esi
push 0
push ebx
call fcn.00580260
mov eax, dword [edi]
mov dword [ebx], eax
mov ecx, dword [edi + 4]
mov dword [ebx + 4], ecx
mov edx, dword [edi + 8]
mov dword [ebx + 8], edx
mov ax, word [edi + 0xc]
mov word [ebx + 0xc], ax
movzx ecx, word [edi + 0xc]
add esp, 0xc
add ecx, ecx
push ecx
lea edx, [edi + 0xe]
lea eax, [ebx + 0xe]
push edx
push eax
call fcn.0057e7b0
movzx ecx, word [edi + 0xc]
mov edx, dword [edi + 8]
add esp, 0xc
lea eax, [ebx + 0xe]
lea eax, [eax + ecx*2]
mov ecx, dword [edi + 0x7e4]
push edx
push ecx
push eax
call fcn.0057e7b0
mov eax, dword [esp + 0x20]
add eax, 0xfffffff8
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x28]
mov dword [eax], 0x44534353
mov dword [eax + 4], esi
mov eax, dword [0x5fe650]
add esp, 0xc
test eax, eax
je 0x4c3b9f
mov edx, dword [esp + 0x1c]
push 0xffffffffffffffff
push esi
push ebx
lea ecx, [esp + 0x38]
push ecx
add edx, 8
push edx
call eax
add esp, 0x14
mov dword [esp + 0x28], eax
jmp 0x4c3ba7
mov dword [esp + 0x28], 0xffffffff
mov eax, dword [0x5fcd20]
mov edx, dword [eax + 0xc]
mov ecx, 0x5fcd20
call edx
add eax, 0x10
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x30]
mov byte [esp + 0xd8], 4
mov ecx, dword [eax + 4]
mov eax, dword [ecx]
push edx
mov edx, dword [eax + 0x14]
call edx
push eax
push str.qqpy__u_lemma_u.dat
lea edi, [esp + 0x20]
call fcn.004126f0
add esp, 0xc
cmp dword [esp + 0x28], 0
jne 0x4c3c14
mov edx, dword [esp + 0x2c]
mov edi, dword [esp + 0x10]
mov ecx, dword [edi + 4]
mov esi, dword [esp + 0x14]
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
add edx, 8
push edx
mov edx, dword [esp + 0x20]
push edx
push esi
push edi
call eax
jmp 0x4c3c2e
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov edx, dword [ecx]
push esi
mov esi, dword [esp + 0x18]
push ebx
push esi
push eax
mov eax, dword [edx + 0xc]
call eax
mov edi, dword [esp + 0x10]
add dword [edi + 0xf4], 1
lea eax, [esi - 0x10]
mov byte [esp + 0xd8], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4c3c59
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push ebx
mov dword [esp + 0xdc], 0xffffffff
call fcn.00578327
add esp, 4
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x34]
add ebx, 0x90
call fcn.004c4640
cmp dword [esp + 0x18], 0
jne 0x4c3a39
mov esi, dword [esp + 0x10]
cmp byte [esi + 0x5c], 0
je 0x4c3dfd
mov eax, 0x10
cmp dword [esi + 0x40], eax
jb 0x4c3ca8
mov edx, dword [esi + 0x38]
jmp 0x4c3cab
lea edx, [esi + 0x4c]
cmp dword [esi + 0x40], eax
jb 0x4c3cb5
mov ecx, dword [esi + 0x38]
jmp 0x4c3cb8
lea ecx, [esi + 0x4c]
cmp dword [esi + 0x40], eax
jb 0x4c3cc2
mov eax, dword [esi + 0x38]
jmp 0x4c3cc5
lea eax, [esi + 0x4c]
movzx ecx, byte [ecx + 7]
imul ecx, dword [eax + 0xc]
movzx edx, byte [edx + 6]
lea edi, [ecx + edx + 0x28]
cmp edi, 0x80
jge 0x4c3ce2
mov edi, 0x80
push edi
call fcn.0057740a
mov ebx, eax
add esp, 4
mov dword [esp + 0x38], ebx
mov dword [esp + 0xd8], 5
cmp dword [esi + 0x40], 0x10
jb 0x4c3d07
mov eax, dword [esi + 0x38]
jmp 0x4c3d0a
lea eax, [esi + 0x4c]
add dword [eax + 8], 1
test ebx, ebx
je 0x4c3df2
mov edx, dword [0x5fe650]
mov dword [ebx], 0x44534353
mov eax, dword [esi + 0x40]
add edi, 0xfffffff8
test edx, edx
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x38]
mov dword [esp + 0x28], edi
je 0x4c3d51
push 0xffffffffffffffff
push eax
push ecx
lea eax, [esp + 0x34]
push eax
lea ecx, [ebx + 8]
push ecx
call edx
add esp, 0x14
mov dword [esp + 0x24], eax
jmp 0x4c3d59
mov dword [esp + 0x24], 0xffffffff
mov edx, dword [0x5fcd20]
mov eax, dword [edx + 0xc]
mov ecx, 0x5fcd20
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
mov byte [esp + 0xd8], 6
mov ecx, dword [esi + 4]
mov edx, dword [ecx]
mov eax, dword [edx + 0x14]
call eax
push eax
push str.qqpy__u_freq.dat
lea edi, [esp + 0x1c]
call fcn.004126f0
mov ecx, dword [esi + 4]
mov edi, dword [esp + 0x1c]
add esp, 8
cmp dword [esp + 0x24], 0
jne 0x4c3db6
mov eax, dword [esp + 0x28]
mov edx, dword [ecx]
mov edx, dword [edx + 0xc]
add eax, 8
push eax
push ebx
push edi
push esi
call edx
jmp 0x4c3dc7
mov eax, dword [esi + 0x40]
mov edx, dword [esi + 0x38]
push eax
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
push edx
push edi
push esi
call eax
add dword [esi + 0xf4], 1
lea eax, [edi - 0x10]
mov byte [esp + 0xd8], 5
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4c3df2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push ebx
call fcn.00578327
add esp, 4
jmp 0x4c3e2a
push 0
push 0x5c7d24
mov ecx, esi
call fcn.004aee70
mov edx, dword [esi]
mov eax, dword [edx + 0x18]
add esp, 8
mov ecx, esi
call eax
fld1
fstp dword [esi + 0xc]
mov dword [esi + 0x14], 0
mov dword [esi + 8], 1
mov ecx, dword [esp + 0xd0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xb8]
xor ecx, esp
call fcn.005787fd
mov esp, ebp
pop ebp
ret