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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xac
mov eax, dword [ebp + 0x10]
push ebx
push esi
mov esi, dword [ebp + 8]
mov ebx, dword [esi + 0xc]
mov ecx, dword [esi]
mov dword [esp + 0x18], eax
xor eax, eax
push edi
mov dword [esp + 0x20], eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x28], ecx
cmp ebx, eax
je 0x1005c616
mov edi, dword [ebp + 0xc]
cmp edi, eax
jne 0x1005baa5
mov dword [esp + 0x24], 0x62
jmp 0x1005baac
movzx edx, byte [edi]
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0x24]
add eax, 0xffffffed
cmp eax, 0x87
ja case.default.0x1005bac5
movzx eax, byte [eax + 0x1005c700]
jmp dword [eax*4 + 0x1005c69c]
mov eax, dword [edi + 0x2c]
cmp byte [eax], 0
mov ecx, dword [edi + 0x30]
mov edx, dword [eax + 0x10]
lea ecx, [ecx + ecx*2]
lea ecx, [edx + ecx*8]
jne 0x1005baee
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x1c], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [eax + 1], 0
je case.0x1005bac5.151
mov edx, dword [ebp + 0x10]
mov ecx, dword [ecx + 0xc]
push edx
mov edx, dword [eax + 4]
push ecx
push edx
push 3
mov eax, ebx
call fcn.1004d330
mov eax, dword [esp + 0x2c]
add esp, 0x10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x24]
test eax, eax
jns 0x1005bb31
mov esi, dword [esi + 0x50]
add esi, dword [edi + 0x28]
mov dword [esp + 0x1c], esi
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movzx ecx, word [edi + 2]
mov edx, dword [ebp + 0x10]
and ecx, 0x200
push ecx
mov ecx, dword [edi + 0x38]
push edx
push eax
mov eax, dword [edi + 0x28]
push eax
push ecx
push esi
call fcn.1005b510
add esp, 0x18
mov dword [esp + 0x1c], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 0x10]
push edx
push 0
mov eax, edi
mov ecx, ebx
call fcn.1005afd0
mov eax, dword [esp + 0x24]
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [edi + 4]
test edi, edi
je case.default.0x1005bac5
mov eax, dword [ebp + 0x10]
push eax
push 0
push edi
mov eax, ebx
call fcn.1005ae80
mov eax, dword [esp + 0x28]
add esp, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 8]
mov edx, dword [edi + 4]
mov eax, dword [ebp + 0x10]
shr ecx, 2
push ecx
push edx
push 0
push eax
push 0
push 0x5e
mov eax, ebx
call fcn.1004d490
mov eax, dword [esp + 0x34]
add esp, 0x18
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x10]
push ecx
push 0
push 0x77
mov eax, ebx
call fcn.1004d430
mov eax, dword [esp + 0x28]
add esp, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [edi + 8]
mov edi, dword [edi + 4]
mov eax, dword [ebx]
shr esi, 2
sub esi, 3
push esi
add edi, 2
push eax
call fcn.1003a970
mov edx, dword [ebp + 0x10]
push 0xffffffffffffffff
push eax
push 0
push edx
mov eax, esi
cdq
sub eax, edx
sar eax, 1
push eax
push 0x79
mov eax, ebx
call fcn.1004d490
mov eax, dword [esp + 0x3c]
add esp, 0x20
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 8]
and eax, 0xfffffffc
cmp eax, 4
ja 0x1005bc71
mov eax, dword [ebx + 0xc]
dec eax
js 0x1005bc71
mov ecx, ebx
call fcn.1004dbc0
cmp byte [eax], 0x1b
jne 0x1005bc71
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 4]
add edx, ecx
cmp edx, dword [edi + 0x24]
jne 0x1005bc71
mov edx, dword [eax + 8]
add edx, ecx
cmp edx, dword [ebp + 0x10]
jne 0x1005bc71
cmp dword [eax + 0x10], 0
jne 0x1005bc71
inc ecx
mov dword [eax + 0xc], ecx
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x10]
mov ecx, dword [edi + 0x24]
push 1
push eax
push ecx
push 0x1b
mov eax, ebx
call fcn.1004d330
mov eax, dword [edi + 8]
shr eax, 2
add esp, 0x10
cmp eax, 1
jbe case.default.0x1005bac5
mov edx, dword [edi + 4]
push eax
push edx
push ebx
or eax, 0xffffffff
call fcn.1004da90
mov eax, dword [esp + 0x28]
add esp, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x24]
mov dword [esp + 0x1c], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x10]
mov edi, dword [edi + 0x14]
push ecx
push edi
push esi
call fcn.1005ba60
add esp, 0xc
mov dword [esp + 0x1c], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 0x10]
mov eax, dword [edi + 0x14]
push edx
push eax
push esi
call fcn.1005ba60
add esp, 0xc
lea edx, [edi + 4]
mov dword [esp + 0x1c], eax
call fcn.100626b0
mov ecx, dword [ebp + 0x10]
movsx edi, al
add edi, 0x2c
cmp dword [esp + 0x1c], ecx
je 0x1005bd23
mov eax, dword [esp + 0x1c]
mov edx, ecx
push edx
push eax
push 9
mov eax, ebx
call fcn.1004d430
mov ecx, dword [ebp + 0x10]
add esp, 0xc
mov dword [esp + 0x1c], ecx
mov edx, dword [esp + 0x1c]
push edx
push edi
mov eax, ebx
call fcn.1004d3e0
mov ecx, dword [esp + 0x24]
push 1
mov eax, esi
call fcn.1005b7a0
add esp, 0xc
mov eax, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x1c]
push ecx
mov ecx, dword [edi + 0x14]
lea edx, [esp + 0x28]
push edx
lea eax, [esp + 0x3c]
push eax
mov eax, dword [edi + 0x18]
push esi
call fcn.10058d30
mov ecx, dword [ebp + 0x10]
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x44]
add esp, 0x14
push 0x10
push ecx
mov ecx, dword [esp + 0x2c]
push edx
push eax
mov eax, dword [edi + 0x18]
push ecx
mov ecx, dword [edi + 0x14]
push esi
call fcn.10058d90
add esp, 0x18
mov edx, dword [esp + 0x20]
mov esi, dword [ebp + 8]
test edx, edx
je case.0x1005bac5.21
mov bl, byte [esi + 0x15]
cmp bl, 8
jae case.0x1005bac5.21
xor eax, eax
lea ecx, [esi + 0x60]
jmp 0x1005bdb0
cmp dword [ecx + 0x10], edx
je 0x1005c683
inc eax
add ecx, 0x18
cmp eax, 0xa
jl 0x1005bdb0
movzx eax, bl
mov dword [esi + eax*4 + 0x18], edx
inc byte [esi + 0x15]
cmp dword [esp + 0x10], 0
je case.default.0x1005bac5
mov dl, byte [esi + 0x15]
cmp dl, 8
jae case.default.0x1005bac5
xor eax, eax
lea ecx, [esi + 0x60]
mov edi, dword [esp + 0x10]
cmp dword [ecx + 0x10], edi
je 0x1005c68c
inc eax
add ecx, 0x18
cmp eax, 0xa
jl 0x1005bde0
movzx ecx, dl
mov dword [esi + ecx*4 + 0x18], edi
inc byte [esi + 0x15]
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea edx, [esp + 0x20]
mov eax, edi
mov ecx, dword [eax + 0x14]
push edx
call fcn.1005c790
mov edx, dword [ebp + 0xc]
lea ecx, [esp + 0x14]
add esp, 4
push ecx
mov ecx, dword [edx + 0x18]
mov edi, eax
call fcn.1005c790
mov ecx, dword [ebp + 0x10]
mov edx, dword [esp + 0x28]
add esp, 4
push ecx
push edi
push eax
push edx
mov eax, ebx
call fcn.1004d330
add esp, 0x10
jmp 0x1005bd90
mov eax, dword [edi + 0x14]
mov cl, byte [eax]
cmp cl, 0x82
jne 0x1005be7a
mov eax, dword [eax + 4]
test eax, eax
je 0x1005bedc
mov ecx, dword [ebp + 0x10]
push ecx
push 1
push eax
mov eax, ebx
call fcn.1005ae80
mov eax, dword [ebp + 0x10]
add esp, 0xc
mov dword [esp + 0x1c], eax
jmp 0x1005bd90
cmp cl, 0x81
jne 0x1005be9b
mov edx, dword [ebp + 0x10]
push edx
push 1
mov ecx, ebx
call fcn.1005afd0
mov eax, dword [ebp + 0x10]
add esp, 8
mov dword [esp + 0x1c], eax
jmp 0x1005bd90
mov ecx, esi
call fcn.1005d720
mov edi, eax
push edi
push 0
push 0x30
mov eax, ebx
mov dword [esp + 0x2c], edi
call fcn.1004d430
mov ecx, dword [ebp + 0xc]
mov ecx, dword [ecx + 0x14]
lea eax, [esp + 0x1c]
add esp, 0xc
push eax
call fcn.1005c790
mov edx, dword [ebp + 0x10]
add esp, 4
push edx
push edi
push eax
push 0x55
mov eax, ebx
call fcn.1004d330
add esp, 0x10
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x1c], eax
jmp 0x1005bd90
lea ecx, [esp + 0x20]
mov edx, edi
push ecx
mov ecx, dword [edx + 0x14]
call fcn.1005c790
mov ecx, dword [ebp + 0x10]
add esp, 4
push ecx
push eax
mov eax, dword [esp + 0x2c]
push eax
mov eax, ebx
mov dword [esp + 0x28], ecx
call fcn.1004d430
add esp, 0xc
jmp 0x1005bd90
mov edi, dword [ebp + 0x10]
push edi
push 1
push 0x30
mov eax, ebx
call fcn.1004d430
mov edx, dword [ebp + 0xc]
lea ecx, [esp + 0x2c]
add esp, 0xc
push ecx
mov ecx, dword [edx + 0x14]
call fcn.1005c790
add esp, 4
push eax
mov eax, dword [esp + 0x28]
push eax
mov eax, ebx
call fcn.1004d3e0
push 0xffffffffffffffff
mov esi, eax
push edi
push 0x2a
mov eax, ebx
call fcn.1004d430
add esp, 0x14
mov eax, esi
mov ecx, ebx
call fcn.1004d8c0
jmp 0x1005bd90
mov eax, dword [edi + 0x2c]
test eax, eax
jne 0x1005bf8c
add edi, 0xc
push edi
push str.misuse_of_aggregate:__T
push esi
call fcn.10039e20
mov eax, dword [esp + 0x28]
add esp, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 0x30]
mov edx, dword [eax + 0x20]
add ecx, ecx
mov eax, dword [edx + ecx*8 + 8]
mov dword [esp + 0x1c], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x28]
mov eax, dword [edx + 8]
mov edx, dword [eax + 0x14]
mov al, byte [edx + 0x39]
xor ecx, ecx
mov edx, 0xc000
mov dword [esp + 0x18], ecx
mov byte [esp + 0x14], al
mov dword [esp + 0xc], ecx
test word [edi + 2], dx
je 0x1005c021
mov dword [esp + 0x20], ecx
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x14]
mov eax, dword [edi + 8]
mov ecx, dword [edi + 4]
push 0
push edx
mov edx, dword [esp + 0x18]
push edx
shr eax, 2
push eax
mov eax, dword [esp + 0x38]
push ecx
push eax
call fcn.10066af0
add esp, 0x18
cmp dword [esp + 0x20], 0
mov dword [esp + 0x24], eax
je 0x1005c034
mov ecx, dword [esp + 0x10]
push ecx
push esi
call fcn.1005d770
push 1
push eax
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x30]
push esi
call fcn.1005caa0
add esp, 0x14
jmp 0x1005c03c
mov eax, dword [edi + 0x1c]
mov dword [esp + 0x20], eax
cmp eax, ecx
je 0x1005bfcd
mov eax, dword [eax]
mov dword [esp + 0x10], eax
jmp 0x1005bfd1
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x10]
cmp eax, 2
jl 0x1005c05d
test byte [edi + 2], 0x80
je 0x1005c05d
mov edx, dword [esp + 0x20]
mov ecx, dword [edx + 0xc]
mov edx, dword [esp + 0x24]
push eax
mov eax, dword [ecx + 0x10]
push edx
jmp 0x1005c070
test eax, eax
jle 0x1005c084
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx + 0xc]
push eax
mov eax, dword [esp + 0x28]
push eax
mov eax, dword [edx]
mov ecx, dword [esp + 0x30]
call fcn.1007f520
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x18]
add esp, 8
xor edi, edi
mov dword [esp + 0x14], edi
mov dword [esp + 0x2c], 1
cmp eax, edi
jle 0x1005c0fe
cmp edi, 0x200
jge 0x1005c0fe
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx + 0xc]
mov eax, dword [edi + edx]
call fcn.1005a510
test eax, eax
je 0x1005c0b9
mov eax, dword [esp + 0x2c]
or dword [esp + 0x18], eax
mov ecx, dword [esp + 0x24]
test byte [ecx + 3], 8
je 0x1005c0e2
cmp dword [esp + 0xc], 0
jne 0x1005c0e2
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 0xc]
mov ecx, dword [edi + eax]
push ecx
push esi
call fcn.10058b10
add esp, 8
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x2c]
inc eax
add edi, 0x10
rol edx, 1
mov dword [esp + 0x14], eax
mov dword [esp + 0x2c], edx
cmp eax, dword [esp + 0x10]
jl 0x1005c096
mov eax, dword [esp + 0x24]
test byte [eax + 3], 8
je 0x1005c133
cmp dword [esp + 0xc], 0
jne 0x1005c11a
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx + 0x2c]
mov dword [esp + 0xc], edx
mov eax, dword [esp + 0xc]
push 0xfffffffffffffffc
push eax
push 0
push 0
push 0
push 0xc
mov eax, ebx
call fcn.1004d490
add esp, 0x18
mov ecx, dword [esp + 0x24]
mov edx, dword [ebp + 0x10]
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x18]
push 0xfffffffffffffffb
push ecx
push edx
push edi
push eax
push 0x16
mov eax, ebx
call fcn.1004d490
mov eax, dword [ebx + 0x14]
mov ecx, dword [esp + 0x28]
add esp, 0x18
test eax, eax
je 0x1005c169
mov ebx, dword [ebx + 0xc]
lea edx, [ebx + ebx*4]
mov byte [eax + edx*4 - 0x11], cl
test ecx, ecx
je 0x1005c178
cmp ecx, dword [esi + 0x38]
jle 0x1005c178
mov dword [esi + 0x38], ecx
mov dword [esi + 0x3c], edi
push ecx
mov ecx, edi
mov eax, esi
call fcn.1005b7a0
mov eax, dword [esp + 0x20]
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [edi + 0x28], 0
jne 0x1005c1a6
push 0
push 0
mov edx, edi
mov ecx, esi
call fcn.1005aae0
add esp, 8
mov eax, dword [edi + 0x28]
mov dword [esp + 0x1c], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea ecx, [esp + 0xc]
push ecx
xor eax, eax
push edi
mov edi, esi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], eax
call fcn.1005a6c0
add esp, 8
cmp dword [esp + 0xc], 0
mov dword [esp + 0x18], eax
je 0x1005c1e3
inc dword [esi + 0x48]
mov edx, dword [esi + 0x48]
mov dword [esp + 0x14], edx
mov edi, dword [ebp + 0xc]
mov esi, edi
call fcn.10058c90
mov ecx, dword [ebp + 8]
inc dword [ecx + 0x54]
mov esi, dword [ebp + 0x10]
mov byte [esp + 0x37], al
mov eax, dword [edi + 0x14]
mov edi, ecx
call fcn.1005c810
mov eax, esi
push eax
push 0x47
mov eax, ebx
call fcn.1004d3e0
add esp, 8
cmp dword [esp + 0x18], 1
mov dword [esp + 0x28], eax
jne 0x1005c27e
push esi
push 0x26
mov eax, ebx
call fcn.1004d3e0
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 0x24]
push esi
push 0
push edx
mov edi, eax
push 0x2e
mov eax, ebx
call fcn.1004d330
push esi
mov dword [esp + 0x34], eax
push 1
push 0x30
mov eax, ebx
call fcn.1004d430
add esp, 0x24
push 0x60
mov eax, ebx
call fcn.1004d390
mov dword [esp + 0x30], eax
add esp, 4
mov eax, edi
mov ecx, ebx
call fcn.1004d8c0
mov eax, dword [esp + 0x18]
mov ecx, ebx
call fcn.1004d8c0
push esi
push 0
push 0x30
jmp 0x1005c360
mov ecx, edi
call fcn.1005d720
mov edi, dword [ebp + 0x10]
mov esi, eax
push 1
lea eax, [esp + 0x3b]
push eax
push esi
push 1
push edi
push 0x4f
mov eax, ebx
mov dword [esp + 0x28], esi
call fcn.1004d490
push edi
push 1
push 0x30
mov eax, ebx
call fcn.1004d430
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 0x24]
add esp, 0x24
push esi
push 0
push edx
push 0x80
mov eax, ebx
call fcn.1004d330
mov esi, dword [esp + 0x24]
add esp, 0x10
mov dword [esp + 0x2c], eax
test esi, esi
jne 0x1005c2df
push edi
push esi
push 0x30
jmp 0x1005c360
mov eax, dword [esp + 0xc]
push eax
push 0x48
mov eax, ebx
call fcn.1004d3e0
push esi
mov dword [esp + 0x20], eax
push 0
push 0x77
mov eax, ebx
call fcn.1004d430
mov ecx, dword [esp + 0x20]
add esp, 0x14
push 0xfffffffffffffffe
push 0x100e8654
push 0
push ecx
push 2
push 0x79
mov eax, ebx
call fcn.1004d490
mov edx, dword [esp + 0x24]
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0x24]
push edx
push 0
push ecx
push 0x80
mov eax, ebx
call fcn.1004d330
push esi
mov dword [esp + 0x44], eax
push 0
push 0x30
mov eax, ebx
call fcn.1004d430
mov eax, dword [esp + 0x4c]
add esp, 0x34
mov ecx, ebx
call fcn.1004d8c0
mov eax, dword [esp + 0x14]
mov ecx, ebx
call fcn.1004d8c0
push edi
push esi
push 0x14
mov eax, ebx
call fcn.1004d430
mov eax, dword [esp + 0x34]
add esp, 0xc
mov ecx, ebx
call fcn.1004d8c0
mov eax, dword [esp + 0x2c]
mov ecx, ebx
call fcn.1004d8c0
mov eax, dword [ebp + 8]
call fcn.1005b380
mov esi, eax
jmp case.0x1005bac5.21
mov eax, edi
mov edx, dword [eax + 0x1c]
mov esi, dword [edx + 0xc]
mov ecx, dword [eax + 0x14]
mov eax, dword [esi]
mov edi, dword [ebp + 8]
lea edx, [esp + 0x10]
push edx
lea edx, [esp + 0x1c]
push edx
lea edx, [esp + 0x28]
push edx
lea edx, [esp + 0x3c]
push edx
push edi
mov dword [esp + 0x28], ecx
mov dword [esp + 0x20], eax
call fcn.10058d30
add esp, 0x14
mov ecx, edi
call fcn.1005d720
mov edx, eax
mov dword [esp + 0x28], edx
call fcn.1005d720
mov ecx, dword [esp + 0x30]
push 0x10
push edx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x24]
push 0x4e
push edi
call fcn.10058d90
mov edx, dword [esi + 0x10]
mov esi, dword [esp + 0x28]
mov dword [esp + 0x24], edx
mov edx, edi
call fcn.1005d740
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x28]
push eax
mov esi, edi
call fcn.1005c790
mov esi, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
add esp, 0x1c
push 0x10
push esi
push eax
mov eax, dword [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x24]
push 0x4c
push edi
call fcn.10058d90
mov edx, dword [ebp + 0x10]
push edx
push esi
mov esi, dword [esp + 0x48]
push esi
push 0x43
mov eax, ebx
call fcn.1004d330
add esp, 0x28
mov edx, edi
call fcn.1005d740
mov esi, dword [esp + 0x2c]
call fcn.1005d740
jmp 0x1005bd90
mov eax, dword [ebp + 0x10]
mov ecx, dword [edi + 0x14]
push eax
push ecx
push esi
call fcn.1005ba60
add esp, 0xc
mov dword [esp + 0x1c], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x1c]
mov edx, dword [eax + 0xc]
mov eax, dword [eax]
push ebx
mov dword [esp + 0x1c], 0
mov dword [esp + 0x10], edx
mov dword [esp + 0x18], eax
call fcn.1004d500
mov edi, dword [edi + 0x14]
add esp, 4
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edi
test edi, edi
je 0x1005c4f2
mov eax, edi
mov esi, eax
mov ecx, 0x10
lea edi, [esp + 0x38]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp + 8]
lea ecx, [esp + 0x20]
push ecx
mov ecx, eax
call fcn.1005c790
mov dword [esp + 0x60], eax
lea edx, [esp + 0x3c]
lea eax, [esp + 0x7c]
add esp, 4
mov byte [esp + 0x38], 0x84
mov byte [esp + 0x78], 0x4a
mov dword [esp + 0x8c], edx
mov dword [esp + 0x18], eax
cmp dword [esp + 0x14], 0
jle 0x1005c5a6
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
dec eax
shr eax, 1
inc eax
mov dword [esp + 0xc], ecx
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 8]
inc dword [eax + 0x54]
cmp dword [esp + 0x2c], 0
je 0x1005c52d
mov edx, dword [esp + 0xc]
mov eax, dword [edx]
mov dword [esp + 0x90], eax
jmp 0x1005c537
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx]
mov dword [esp + 0x18], edx
push ebx
call fcn.1004d500
mov edi, dword [ebp + 8]
add esp, 4
push 8
push eax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x20]
push eax
push edi
call fcn.1005cf90
mov ecx, dword [esp + 0x1c]
mov esi, dword [ebp + 0x10]
mov eax, dword [ecx + 0x10]
call fcn.1005c810
mov edx, dword [esp + 0x38]
push edx
push 0
push 0x60
mov eax, ebx
call fcn.1004d430
add esp, 0x1c
mov eax, edi
call fcn.1005b380
mov eax, dword [ebx + 0x20]
test eax, eax
je 0x1005c597
mov ecx, dword [esp + 0x30]
lea edx, [ecx*4 + 4]
mov ecx, dword [ebx + 0xc]
sub eax, edx
mov dword [eax], ecx
add dword [esp + 0xc], 0x20
dec dword [esp + 0x14]
jne 0x1005c511
mov edx, dword [ebp + 0xc]
cmp dword [edx + 0x18], 0
je 0x1005c5cb
mov edi, dword [ebp + 8]
inc dword [edi + 0x54]
mov esi, dword [ebp + 0x10]
mov eax, edx
mov eax, dword [eax + 0x18]
call fcn.1005c810
mov eax, edi
call fcn.1005b380
jmp 0x1005c5dd
mov ecx, dword [ebp + 0x10]
push ecx
push 0
push 0x77
mov eax, ebx
call fcn.1004d430
add esp, 0xc
mov eax, dword [ebx + 0x20]
test eax, eax
je 0x1005bd90
mov edx, dword [esp + 0x28]
lea ecx, [edx*4 + 4]
mov edx, dword [ebx + 0xc]
sub eax, ecx
mov dword [eax], edx
jmp 0x1005bd90
cmp dword [esi + 0x1e4], 0
jne 0x1005c61f
push str.RAISE___may_only_be_used_within_a_trigger_program
push esi
call fcn.10039e20
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov al, byte [edi + 1]
cmp al, 4
je 0x1005c650
mov ecx, dword [edi + 8]
mov edx, dword [edi + 4]
shr ecx, 2
push ecx
push edx
movsx eax, al
push 0
push eax
push 0x13
push 0x27
mov eax, ebx
call fcn.1004d490
mov eax, dword [esp + 0x34]
add esp, 0x18
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0
push 0
push 0x69
mov eax, ebx
call fcn.1004d430
mov ecx, dword [esi + 0x1e4]
mov edx, dword [ecx + 0x18]
add esp, 0xc
push edx
push 0
push 0x60
mov eax, ebx
call fcn.1004d430
mov eax, dword [esp + 0x28]
add esp, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov byte [ecx + 9], 1
jmp case.0x1005bac5.21
mov eax, dword [esp + 0x1c]
pop edi
pop esi
mov byte [ecx + 9], 1
pop ebx
mov esp, ebp
pop ebp
ret