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

Disassembly:
push ebp
push ebx
mov edx, 0x38
sub esp, 4
mov dword [esp], 0
dec edx
jne 0x1001255e
mov edx, dword [esp + 0xec]
lea ecx, [esp]
call fcn.10031000
mov edx, dword [esp + 0xf0]
lea ecx, [esp + 4]
call fcn.10031000
mov edx, dword [esp + 0xf4]
lea ecx, [esp + 8]
call fcn.10031000
mov edx, dword [esp + 0xf8]
lea ecx, [esp + 0xc]
call fcn.10031000
lea edx, str.measures
lea ecx, [esp + 0x5c]
call fcn.10031008
push dword [esp + 4]
lea edx, [0x1003d028]
pop ecx
call fcn.100311d0
jne 0x100125df
push dword [esp + 8]
lea edx, [0x1003d028]
pop ecx
call fcn.100311d0
jne 0x100125df
jmp 0x100125e6
mov eax, 1
jmp 0x100125e8
xor eax, eax
and eax, eax
jne 0x10012600
push dword [esp + 0xc]
lea edx, [0x1003d028]
pop ecx
call fcn.100311d0
jne 0x10012600
jmp 0x10012607
mov eax, 1
jmp 0x10012609
xor eax, eax
and eax, eax
jne 0x10012620
push dword [esp]
lea edx, [0x1003d028]
pop ecx
call fcn.100311d0
jne 0x10012620
jmp 0x10012627
mov eax, 1
jmp 0x10012629
xor eax, eax
and eax, eax
je 0x100126c5
lea edx, str.mobiles
lea ecx, [esp + 0x60]
call fcn.10031008
xor eax, eax
movsx eax, al
jmp 0x10012f7a
lea edx, str.elder
lea ecx, [esp + 0x6c]
call fcn.10031008
mov edx, dword [esp]
push dword [0x10044d80]
push edx
call fcn.1003ad20
mov edx, dword [esp + 8]
push edx
call fcn.1003ad20
lea eax, [esp + 0x34]
push eax
call fcn.1003ad80
lea edx, str.showtimes
lea ecx, [esp + 0x70]
call fcn.10031008
lea edx, str.surprise
lea ecx, [esp + 0x74]
call fcn.10031008
push 0x19
push dword [esp + 0x34]
call fcn.10031910
mov dword [esp + 0x34], eax
mov word [esp + 0x78], 1
movzx ebx, word [esp + 0x78]
mov eax, 3
cmp ebx, eax
jl 0x1001274b
movzx ebx, word [esp + 0x78]
dec ebx
push ebx
pop eax
mov word [esp + 0x7c], ax
jmp 0x10012758
movzx ebx, word [esp + 0x78]
inc ebx
push ebx
pop eax
mov word [esp + 0x7c], ax
movzx ebx, word [esp + 0x7c]
push ebx
mov ebx, 0x11
cmp ebx, dword [esp]
jne 0x10012772
add esp, 4
jmp 0x10012f7a
mov ebx, 5
cmp ebx, dword [esp]
jne 0x1001278d
movzx eax, word [esp + 0x80]
push eax
pop eax
mov word [esp + 0x7c], ax
jmp 0x100127a7
mov ebx, 2
cmp ebx, dword [esp]
jne 0x100127a7
movzx ebx, word [esp + 0x80]
inc ebx
push ebx
pop eax
mov word [esp + 0x7c], ax
pop eax
mov ebx, dword [esp + 0x34]
add ebx, 2
push ebx
call fcn.1003a7a0
mov dword [esp + 0x38], eax
mov word [esp + 0x80], 7
movzx ebx, word [esp + 0x80]
mov eax, 5
cmp ebx, eax
jl 0x100127e9
movzx ebx, word [esp + 0x80]
dec ebx
push ebx
pop eax
mov word [esp + 0x84], ax
jmp 0x100127fc
movzx ebx, word [esp + 0x80]
inc ebx
push ebx
pop eax
mov word [esp + 0x84], ax
movzx ebx, word [esp + 0x84]
push ebx
mov ebx, 0x10
cmp ebx, dword [esp]
jne 0x10012819
add esp, 4
jmp 0x10012f7a
mov ebx, 8
cmp ebx, dword [esp]
jne 0x10012837
movzx eax, word [esp + 0x88]
push eax
pop eax
mov word [esp + 0x84], ax
jmp 0x10012854
mov ebx, 4
cmp ebx, dword [esp]
jne 0x10012854
movzx ebx, word [esp + 0x88]
inc ebx
push ebx
pop eax
mov word [esp + 0x84], ax
pop eax
mov word [esp + 0x88], 2
movzx ebx, word [esp + 0x88]
mov eax, 5
cmp ebx, eax
jl 0x10012885
movzx ebx, word [esp + 0x88]
dec ebx
push ebx
pop eax
mov word [esp + 0x8c], ax
jmp 0x10012898
movzx ebx, word [esp + 0x88]
inc ebx
push ebx
pop eax
mov word [esp + 0x8c], ax
movzx ebx, word [esp + 0x8c]
push ebx
mov ebx, 0x12
cmp ebx, dword [esp]
jne 0x100128b5
add esp, 4
jmp 0x10012f7a
mov ebx, 6
cmp ebx, dword [esp]
jne 0x100128d3
movzx eax, word [esp + 0x90]
push eax
pop eax
mov word [esp + 0x8c], ax
jmp 0x100128f0
mov ebx, 5
cmp ebx, dword [esp]
jne 0x100128f0
movzx ebx, word [esp + 0x90]
inc ebx
push ebx
pop eax
mov word [esp + 0x8c], ax
pop eax
mov ebx, dword [esp + 0x38]
and ebx, ebx
jne 0x10012915
lea edx, str.father
lea ecx, [esp + 0x90]
call fcn.10031008
xor eax, eax
movsx eax, al
jmp 0x10012f7a
push 0x19
push 0xffffffff
push dword [esp + 0x38]
push dword [esp + 0x44]
call fcn.1003a7c0
lea edx, [0x1003d028]
lea ecx, [esp + 0x30]
call fcn.10031008
push dword [esp + 0x34]
lea ebp, [esp + 0x2c]
pop eax
mov word [ebp], ax
mov ebx, dword [esp + 0x34]
add ebx, 2
push ebx
pop eax
mov word [ebp + 2], ax
push dword [esp + 0x38]
pop eax
mov dword [ebp + 4], eax
lea ebp, [esp + 0x3c]
mov dword [ebp + 0xc], 0x40
mov dword [ebp], 0x18
lea eax, [esp + 0x28]
push eax
pop eax
mov dword [ebp + 8], eax
mov word [esp + 0x94], 8
movzx ebx, word [esp + 0x94]
mov eax, 3
cmp ebx, eax
jl 0x100129a8
movzx ebx, word [esp + 0x94]
dec ebx
push ebx
pop eax
mov word [esp + 0x98], ax
jmp 0x100129bb
movzx ebx, word [esp + 0x94]
inc ebx
push ebx
pop eax
mov word [esp + 0x98], ax
movzx ebx, word [esp + 0x98]
push ebx
mov ebx, 0xe
cmp ebx, dword [esp]
jne 0x100129d8
add esp, 4
jmp 0x10012f7a
mov ebx, 9
cmp ebx, dword [esp]
jne 0x100129f6
movzx eax, word [esp + 0x9c]
push eax
pop eax
mov word [esp + 0x98], ax
jmp 0x10012a13
mov ebx, 4
cmp ebx, dword [esp]
jne 0x10012a13
movzx ebx, word [esp + 0x9c]
inc ebx
push ebx
pop eax
mov word [esp + 0x98], ax
pop eax
lea eax, [esp + 0x3c]
push eax
push 2
lea eax, [esp + 0x1c]
push eax
call fcn.100168f8
mov ebx, eax
and ebx, ebx
jne 0x10012a3d
mov ebx, dword [esp + 0x14]
and ebx, ebx
jle 0x10012a3d
mov eax, 1
jmp 0x10012a3f
xor eax, eax
and eax, eax
je 0x10012ea7
mov word [esp + 0x9c], 0xa
movzx ebx, word [esp + 0x9c]
mov eax, 3
cmp ebx, eax
jl 0x10012a77
movzx ebx, word [esp + 0x9c]
dec ebx
push ebx
pop eax
mov word [esp + 0xa0], ax
jmp 0x10012a8a
movzx ebx, word [esp + 0x9c]
inc ebx
push ebx
pop eax
mov word [esp + 0xa0], ax
movzx ebx, word [esp + 0xa0]
push ebx
mov ebx, 0x11
cmp ebx, dword [esp]
jne 0x10012aa7
add esp, 4
jmp 0x10012f7a
mov ebx, 4
cmp ebx, dword [esp]
jne 0x10012ac5
movzx eax, word [esp + 0xa4]
push eax
pop eax
mov word [esp + 0xa0], ax
jmp 0x10012ae2
mov ebx, 2
cmp ebx, dword [esp]
jne 0x10012ae2
movzx ebx, word [esp + 0xa4]
inc ebx
push ebx
pop eax
mov word [esp + 0xa0], ax
pop eax
push dword [esp + 0x38]
call fcn.1003a910
mov dword [esp + 0x38], 0
push 0x19
push dword [esp + 0xc]
call fcn.10031910
mov dword [esp + 0x1c], eax
mov ebx, dword [esp + 0x1c]
add ebx, 2
push ebx
call fcn.1003a7a0
mov dword [esp + 0x18], eax
mov word [esp + 0xa4], 3
movzx ebx, word [esp + 0xa4]
mov eax, 2
cmp ebx, eax
jl 0x10012b47
movzx ebx, word [esp + 0xa4]
dec ebx
push ebx
pop eax
mov word [esp + 0xa8], ax
jmp 0x10012b5a
movzx ebx, word [esp + 0xa4]
inc ebx
push ebx
pop eax
mov word [esp + 0xa8], ax
movzx ebx, word [esp + 0xa8]
push ebx
mov ebx, 0xa
cmp ebx, dword [esp]
jne 0x10012b77
add esp, 4
jmp 0x10012f7a
mov ebx, 5
cmp ebx, dword [esp]
jne 0x10012b95
movzx eax, word [esp + 0xac]
push eax
pop eax
mov word [esp + 0xa8], ax
jmp 0x10012bb2
mov ebx, 4
cmp ebx, dword [esp]
jne 0x10012bb2
movzx ebx, word [esp + 0xac]
inc ebx
push ebx
pop eax
mov word [esp + 0xa8], ax
pop eax
mov word [esp + 0xac], 9
movzx ebx, word [esp + 0xac]
mov eax, 3
cmp ebx, eax
jl 0x10012be3
movzx ebx, word [esp + 0xac]
dec ebx
push ebx
pop eax
mov word [esp + 0xb0], ax
jmp 0x10012bf6
movzx ebx, word [esp + 0xac]
inc ebx
push ebx
pop eax
mov word [esp + 0xb0], ax
movzx ebx, word [esp + 0xb0]
push ebx
mov ebx, 0xc
cmp ebx, dword [esp]
jne 0x10012c13
add esp, 4
jmp 0x10012f7a
mov ebx, 6
cmp ebx, dword [esp]
jne 0x10012c31
movzx eax, word [esp + 0xb4]
push eax
pop eax
mov word [esp + 0xb0], ax
jmp 0x10012c4e
mov ebx, 5
cmp ebx, dword [esp]
jne 0x10012c4e
movzx ebx, word [esp + 0xb4]
inc ebx
push ebx
pop eax
mov word [esp + 0xb0], ax
pop eax
cmp dword [esp + 0x18], 0
je 0x10012e9e
push 0x19
push 0xffffffff
push dword [esp + 0x10]
push dword [esp + 0x24]
call fcn.1003a7c0
lea edx, str.scholars
lea ecx, [esp + 0xb4]
call fcn.10031008
push dword [esp + 0x1c]
lea ebp, [esp + 0x58]
pop eax
mov word [ebp], ax
lea edx, str.rankings
lea ecx, [esp + 0xb8]
call fcn.10031008
mov ebx, dword [esp + 0x1c]
add ebx, 2
push ebx
pop eax
mov word [ebp + 2], ax
push dword [esp + 0x18]
pop eax
mov dword [ebp + 4], eax
lea edx, str.calls
lea ecx, [esp + 0xbc]
call fcn.10031008
mov word [esp + 0xc0], 6
movzx ebx, word [esp + 0xc0]
mov eax, 5
cmp ebx, eax
jl 0x10012cf9
movzx ebx, word [esp + 0xc0]
dec ebx
push ebx
pop eax
mov word [esp + 0xc4], ax
jmp 0x10012d0c
movzx ebx, word [esp + 0xc0]
inc ebx
push ebx
pop eax
mov word [esp + 0xc4], ax
movzx ebx, word [esp + 0xc4]
push ebx
mov ebx, 0x12
cmp ebx, dword [esp]
jne 0x10012d29
add esp, 4
jmp 0x10012f7a
mov ebx, 9
cmp ebx, dword [esp]
jne 0x10012d47
movzx eax, word [esp + 0xc8]
push eax
pop eax
mov word [esp + 0xc4], ax
jmp 0x10012d64
mov ebx, 3
cmp ebx, dword [esp]
jne 0x10012d64
movzx ebx, word [esp + 0xc8]
inc ebx
push ebx
pop eax
mov word [esp + 0xc4], ax
pop eax
push 0x19
push dword [esp + 0x10]
call fcn.10031910
mov ebx, eax
add ebx, 2
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0x24]
add ebx, 2
push ebx
call fcn.1003a7a0
mov dword [esp + 0x20], eax
cmp dword [esp + 0x20], 0
je 0x10012e83
push 0x19
push 0xffffffff
push dword [esp + 0x14]
push dword [esp + 0x2c]
call fcn.1003a7c0
push dword [esp + 0x24]
push dword [esp + 0x24]
push 1
push 0
lea eax, [esp + 0x64]
push eax
push dword [esp + 0x28]
call fcn.1000b20b
mov ebx, eax
and ebx, ebx
jne 0x10012e7a
mov byte [esp + 0x10], 1
mov word [esp + 0xc8], 8
movzx ebx, word [esp + 0xc8]
mov eax, 5
cmp ebx, eax
jl 0x10012e0e
movzx ebx, word [esp + 0xc8]
dec ebx
push ebx
pop eax
mov word [esp + 0xcc], ax
jmp 0x10012e21
movzx ebx, word [esp + 0xc8]
inc ebx
push ebx
pop eax
mov word [esp + 0xcc], ax
movzx ebx, word [esp + 0xcc]
push ebx
mov ebx, 0xc
cmp ebx, dword [esp]
jne 0x10012e3e
add esp, 4
jmp 0x10012f7a
mov ebx, 7
cmp ebx, dword [esp]
jne 0x10012e5c
movzx eax, word [esp + 0xd0]
push eax
pop eax
mov word [esp + 0xcc], ax
jmp 0x10012e79
mov ebx, 4
cmp ebx, dword [esp]
jne 0x10012e79
movzx ebx, word [esp + 0xd0]
inc ebx
push ebx
pop eax
mov word [esp + 0xcc], ax
pop eax
push dword [esp + 0x20]
call fcn.1003a910
push dword [esp + 0x18]
call fcn.1003a910
lea edx, str.olympic
lea ecx, [esp + 0xd0]
call fcn.10031008
push dword [esp + 0x14]
call fcn.1002fe9f
mov ebx, dword [esp + 0x38]
and ebx, ebx
jle 0x10012eb8
push dword [esp + 0x38]
call fcn.1003a910
lea edx, str.creates
lea ecx, [esp + 0xd4]
call fcn.10031008
mov dword [esp + 0x14], 0
movsx eax, byte [esp + 0x10]
movsx eax, al
jmp 0x10012f7a
push dword [esp + 0x90]
call fcn.1003acf0
push dword [esp + 0xd0]
call fcn.1003acf0
push dword [esp]
call fcn.1003acf0
push dword [esp + 0xb4]
call fcn.1003acf0
push dword [esp + 0xd4]
call fcn.1003acf0
push dword [esp + 0x6c]
call fcn.1003acf0
push dword [esp + 0x74]
call fcn.1003acf0
push dword [esp + 0xb8]
call fcn.1003acf0
push dword [esp + 0x30]
call fcn.1003acf0
push dword [esp + 4]
call fcn.1003acf0
push dword [esp + 0x70]
call fcn.1003acf0
push dword [esp + 0xbc]
call fcn.1003acf0
push dword [esp + 0x5c]
call fcn.1003acf0
push dword [esp + 0xc]
call fcn.1003acf0
push dword [esp + 8]
call fcn.1003acf0
push dword [esp + 0x60]
call fcn.1003acf0
add esp, 0xe0
pop ebx
pop ebp
ret 0x10