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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x9c
mov eax, dword [ebp + 8]
and dword [esp + 0x30], 0
push ebx
mov ebx, edx
mov edx, ecx
xor ecx, ecx
push esi
mov esi, dword [edx + 0xc]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [edx]
push edi
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], edx
mov dword [esp + 0x24], esi
mov dword [esp + 0x10], eax
mov dword [esp + 0x2c], ecx
test esi, esi
jne 0x421b5f
xor eax, eax
jmp 0x4226f8
test ebx, ebx
jne 0x421b6b
push 0x62
pop edi
jmp 0x4221b2
movzx edi, byte [ebx]
cmp edi, 0x5d
jg 0x4221a0
je 0x42217d
cmp edi, 0x45
jg 0x421db2
je 0x421ce7
cmp edi, 0x13
je 0x42217d
cmp edi, 0x14
je 0x42223b
cmp edi, 0x18
je 0x4220db
cmp edi, 0x24
je 0x421c7e
cmp edi, 0x36
je 0x421c05
cmp edi, 0x41
jle 0x4222a4
cmp edi, 0x43
jg 0x4222a4
mov edx, dword [ebx + 8]
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x3c]
push eax
call fcn.004226ff
mov edx, dword [ebx + 0xc]
mov esi, eax
pop ecx
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x18]
push eax
call fcn.004226ff
pop ecx
push dword [ebp + 8]
mov ecx, dword [esp + 0x28]
push esi
push eax
mov edx, edi
call fcn.00416227
add esp, 0xc
jmp 0x421da5
xor edi, edi
cmp dword [edx + 0x1e8], edi
jne 0x421c21
push str.RAISE___may_only_be_used_within_a_trigger_program
push edx
call fcn.004090e9
pop ecx
pop ecx
jmp 0x421b58
mov al, byte [ebx + 1]
push edi
cmp al, 4
je 0x421c4e
movsx eax, al
push eax
push 0x13
push 0x27
pop edx
mov ecx, dword [esp + 0x30]
mov esi, dword [ebx + 4]
call fcn.00416227
mov ecx, dword [esp + 0x30]
add esp, 0xc
mov edx, eax
push edi
push esi
jmp 0x4226d5
push edi
push edi
push 0x69
pop edx
mov ecx, esi
call fcn.00416227
mov ecx, dword [esp + 0x20]
add esp, 0xc
mov eax, dword [ecx + 0x1e8]
push edi
push dword [eax + 0x18]
push edi
push 0x60
pop edx
mov ecx, esi
call fcn.00416227
add esp, 0xc
jmp 0x4226dc
mov edi, dword [esp + 0x14]
mov edx, dword [ebx + 8]
push eax
mov ecx, edi
call fcn.00421b16
pop ecx
mov ecx, dword [ebx + 4]
mov dword [esp + 0x10], eax
call fcn.00425b28
movsx ebx, al
mov eax, dword [esp + 0x10]
cmp eax, dword [ebp + 8]
je 0x421cc0
push 0
push dword [ebp + 8]
mov ecx, esi
push eax
push 9
pop edx
call fcn.00416227
mov eax, dword [ebp + 8]
add esp, 0xc
mov dword [esp + 0x10], eax
push 0
push 0
push eax
lea edx, [ebx + 0x2c]
mov ecx, esi
call fcn.00416227
mov esi, dword [esp + 0x1c]
add esp, 0xc
mov edx, esi
push 1
mov ecx, edi
call fcn.00421aa4
pop ecx
jmp 0x4226e0
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebx + 8]
mov edi, dword [eax + 0xc]
lea eax, [esp + 0x18]
mov esi, dword [edi]
push eax
lea eax, [esp + 0x30]
push eax
push esi
lea eax, [esp + 0x48]
push eax
lea eax, [esp + 0x30]
mov dword [esp + 0x40], ecx
mov edx, ecx
mov ecx, dword [esp + 0x24]
push eax
call fcn.00420162
mov ecx, dword [esp + 0x28]
add esp, 0x14
call fcn.00423169
mov ebx, eax
call fcn.00423169
mov edx, dword [esp + 0x30]
push 0x10
push ebx
push dword [esp + 0x34]
mov dword [esp + 0x40], eax
push dword [esp + 0x2c]
push 0x4e
push esi
call fcn.004201af
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
mov esi, dword [edi + 0x14]
call fcn.00423185
lea eax, [esp + 0x30]
push eax
mov edx, esi
call fcn.004226ff
mov edi, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x30]
add esp, 0x1c
push 0x10
push edi
push eax
push dword [esp + 0x2c]
push 0x4c
push esi
call fcn.004201af
push dword [ebp + 8]
mov ecx, dword [esp + 0x40]
push edi
push ebx
push 0x43
pop edx
call fcn.00416227
mov ecx, dword [esp + 0x38]
add esp, 0x24
mov edx, ebx
call fcn.00423185
mov edx, edi
call fcn.00423185
mov eax, dword [esp + 0x18]
mov dword [esp + 0x44], eax
jmp 0x4226dc
cmp edi, 0x59
jg 0x4220cf
cmp edi, 0x50
jge 0x421bc7
cmp edi, 0x46
je 0x421e8b
jle 0x4222a4
cmp edi, 0x48
jle 0x421e2c
cmp edi, 0x4e
jg 0x4222a4
mov edx, dword [ebx + 8]
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x30]
push eax
push dword [ebx + 0xc]
lea eax, [esp + 0x48]
push eax
lea eax, [esp + 0x30]
push eax
call fcn.00420162
mov edx, dword [ebx + 8]
mov ecx, dword [esp + 0x28]
add esp, 0x14
push 0x10
push dword [ebp + 8]
push dword [esp + 0x34]
push dword [esp + 0x2c]
push edi
push dword [ebx + 0xc]
call fcn.004201af
add esp, 0x18
jmp 0x421da5
push 0
push eax
push 1
push 0x30
pop edx
mov ecx, esi
call fcn.00416227
mov edx, dword [ebx + 8]
mov ecx, dword [esp + 0x20]
add esp, 0xc
lea eax, [esp + 0x3c]
push eax
call fcn.004226ff
pop ecx
xor ebx, ebx
push ebx
push ebx
push eax
mov edx, edi
mov ecx, esi
call fcn.00416227
add esp, 0xc
mov esi, eax
push ebx
mov ebx, dword [esp + 0x28]
push 0xffffffffffffffff
push dword [ebp + 8]
mov ecx, ebx
push 0x2a
pop edx
call fcn.00416227
add esp, 0xc
push dword [ebx + 0xc]
mov edx, esi
mov ecx, ebx
call fcn.00416516
jmp 0x4226db
mov edi, dword [esp + 0x14]
and dword [esp + 0x18], 0
and dword [esp + 0x1c], 0
lea eax, [esp + 0x1c]
push eax
mov edx, ebx
mov ecx, edi
call fcn.004210e6
cmp dword [esp + 0x20], 0
pop ecx
mov dword [esp + 0x34], eax
je 0x421ebd
inc dword [edi + 0x48]
mov eax, dword [edi + 0x48]
mov dword [esp + 0x18], eax
mov ecx, ebx
call fcn.004200e3
mov byte [esp + 0x2b], al
mov eax, edi
mov edi, dword [ebp + 8]
inc dword [eax + 0x54]
mov edx, dword [ebx + 8]
push edi
mov ecx, eax
call fcn.00422738
pop ecx
push 0
push 0
push edi
push 0x47
pop edx
mov ecx, esi
call fcn.00416227
add esp, 0xc
cmp dword [esp + 0x34], 1
mov dword [esp + 0x2c], eax
jne 0x421f80
push 0
push 0
push edi
push 0x26
pop edx
mov ecx, esi
call fcn.00416227
add esp, 0xc
mov ecx, esi
push dword [ebp + 8]
mov edi, eax
push 0
push dword [ebx + 0x18]
push 0x2e
pop edx
call fcn.00416227
mov ebx, dword [esp + 0x30]
add esp, 0xc
mov ecx, ebx
push 0
push dword [ebp + 8]
mov esi, eax
push 1
push 0x30
pop edx
call fcn.00416227
add esp, 0xc
xor eax, eax
push eax
push eax
push eax
push 0x60
pop edx
mov ecx, ebx
call fcn.00416227
add esp, 0xc
push dword [ebx + 0xc]
mov edx, edi
mov ecx, ebx
mov dword [esp + 0x34], eax
call fcn.00416516
pop ecx
push dword [ebx + 0xc]
mov edx, esi
mov esi, ebx
mov ecx, esi
call fcn.00416516
pop ecx
push 0
push dword [ebp + 8]
push 0
push 0x30
jmp 0x422098
mov ecx, dword [esp + 0x14]
call fcn.00423169
push eax
push 1
push edi
push 0x4f
pop edx
mov ecx, esi
mov dword [esp + 0x50], eax
call fcn.00416227
add esp, 0xc
lea ecx, [esp + 0x2b]
push 1
push ecx
mov edx, eax
mov ecx, esi
call fcn.00416610
push 0
push edi
push 1
push 0x30
pop edx
mov ecx, esi
call fcn.00416227
add esp, 0x14
mov edx, 0x80
push dword [esp + 0x44]
mov ecx, esi
push 0
push dword [ebx + 0x18]
call fcn.00416227
add esp, 0xc
cmp dword [esp + 0x18], 0
mov dword [esp + 0x30], eax
push 0
mov ecx, esi
jne 0x421ff1
push edi
push 0
push 0x30
jmp 0x42209a
push 0
push dword [esp + 0x24]
push 0x48
pop edx
call fcn.00416227
add esp, 0xc
mov ecx, esi
push 0
push dword [esp + 0x1c]
mov edi, eax
push 0
push 0x77
pop edx
call fcn.00416227
add esp, 0xc
mov ecx, esi
push 0
push dword [esp + 0x20]
push 2
push 0x79
pop edx
call fcn.00416227
add esp, 0xc
mov edx, eax
push 0xfffffffffffffffe
push 0x5aee30
mov ecx, esi
call fcn.00416610
push dword [esp + 0x24]
mov edx, 0x80
push 0
push dword [ebx + 0x18]
mov ecx, esi
call fcn.00416227
mov ebx, dword [esp + 0x38]
add esp, 0x14
mov ecx, ebx
push 0
push dword [esp + 0x1c]
mov esi, eax
push 0
push 0x30
pop edx
call fcn.00416227
mov edx, esi
add esp, 0xc
push dword [ebx + 0xc]
mov esi, ebx
mov ecx, esi
call fcn.00416516
pop ecx
push dword [esi + 0xc]
mov edx, edi
mov ecx, esi
call fcn.00416516
pop ecx
push 0
push dword [ebp + 8]
push dword [esp + 0x20]
push 0x14
mov ecx, esi
pop edx
call fcn.00416227
mov edx, dword [esp + 0x38]
add esp, 0xc
push dword [esi + 0xc]
mov ecx, esi
call fcn.00416516
mov edx, dword [esp + 0x34]
pop ecx
push dword [esi + 0xc]
mov ecx, esi
call fcn.00416516
pop ecx
mov ecx, dword [esp + 0x14]
call fcn.00421961
jmp 0x4226dc
sub edi, 0x5b
je 0x4220ee
dec edi
jne 0x4222a4
mov edx, dword [ebx + 8]
mov ecx, dword [esp + 0x14]
push eax
call fcn.00421b16
pop ecx
jmp 0x422415
mov ecx, dword [ebx + 8]
mov dl, byte [ecx]
mov byte [esp + 0x2b], dl
cmp dl, 0x82
mov edx, dword [esp + 0x14]
jne 0x42210f
mov edx, dword [ecx + 4]
push eax
push 1
mov ecx, esi
call fcn.0042172e
jmp 0x422122
cmp byte [esp + 0x2b], 0x81
jne 0x422126
push eax
mov edx, ecx
push 1
mov ecx, esi
call fcn.004217c9
pop ecx
pop ecx
jmp 0x422175
mov ecx, edx
call fcn.00423169
mov ecx, dword [esp + 0x24]
push 0
mov esi, eax
push esi
push 0
push 0x30
pop edx
mov dword [esp + 0x48], esi
call fcn.00416227
mov edx, dword [ebx + 8]
mov ecx, dword [esp + 0x20]
add esp, 0xc
lea eax, [esp + 0x18]
push eax
call fcn.004226ff
pop ecx
push dword [ebp + 8]
mov ecx, dword [esp + 0x28]
push esi
push eax
push 0x55
pop edx
call fcn.00416227
mov eax, dword [esp + 0x24]
mov dword [esp + 0x50], eax
add esp, 0xc
mov esi, dword [ebp + 8]
jmp 0x4226e0
mov edx, dword [ebx + 8]
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x3c]
push eax
call fcn.004226ff
pop ecx
push 0
push dword [ebp + 8]
mov edx, edi
push eax
mov ecx, esi
call fcn.00416227
jmp 0x422172
cmp edi, 0x84
jg 0x422273
je 0x42226b
push 0x5e
pop edx
sub edi, edx
je 0x422261
sub edi, 4
je 0x422255
sub edi, 0x12
je 0x42223b
sub edi, 0xd
je 0x42222a
dec edi
je 0x422218
dec edi
jne 0x4222a4
mov ecx, dword [ebx + 4]
add ecx, 2
call fcn.0040905a
mov ebx, dword [esp + 0x24]
lea esi, [eax - 1]
mov edx, ecx
mov ecx, dword [ebx]
push esi
call fcn.0040993e
pop ecx
push 0xffffffffffffffff
push eax
mov eax, esi
cdq
push edi
push dword [ebp + 8]
sub eax, edx
sar eax, 1
push eax
push 0x79
pop edx
mov ecx, ebx
call fcn.0041627b
add esp, 0x14
jmp 0x4226dc
mov edx, dword [ebx + 4]
push eax
push 0
mov ecx, esi
call fcn.0042172e
jmp 0x4226da
push eax
push 0
mov edx, ebx
mov ecx, esi
call fcn.004217c9
jmp 0x4226da
mov ecx, dword [esp + 0x14]
push 0
push 0
mov edx, ebx
call fcn.004213dd
movsx eax, word [ebx + 0x1c]
pop ecx
pop ecx
jmp 0x422415
push 0
push eax
push 0
push 0x77
jmp 0x421c6e
xor edi, edi
push edi
push eax
push edi
jmp 0x421c32
mov eax, dword [ebx + 0x18]
jmp 0x422415
sub edi, 0x85
je 0x422670
sub edi, 0x11
je 0x42248e
dec edi
je 0x422459
dec edi
je 0x422430
dec edi
je 0x422400
dec edi
je 0x42248e
mov eax, dword [ebx + 0x10]
and dword [esp + 0x2c], 0
mov edx, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, esi
mov dword [esp + 0x20], edx
mov dword [esp + 0x34], eax
call fcn.004162ae
mov edx, dword [ebx + 8]
mov dword [esp + 0x38], eax
mov dword [esp + 0x40], edx
test edx, edx
je 0x422312
push 0xc
pop ecx
mov esi, edx
lea edi, [esp + 0x48]
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x14]
lea eax, [esp + 0x3c]
push eax
mov ecx, edi
call fcn.004226ff
mov edx, dword [esp + 0x44]
mov dword [esp + 0x64], eax
lea eax, [esp + 0x4c]
mov dword [esp + 0x84], eax
lea eax, [esp + 0x7c]
pop ecx
mov byte [esp + 0x48], 0x84
mov byte [esp + 0x78], 0x4a
mov dword [esp + 0x2c], eax
jmp 0x422316
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x34]
test eax, eax
jle 0x4223b1
mov ebx, dword [esp + 0x24]
dec eax
shr eax, 1
inc eax
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x20]
inc dword [edi + 0x54]
mov eax, dword [eax]
test edx, edx
je 0x422344
mov dword [esp + 0x84], eax
jmp 0x422348
mov dword [esp + 0x2c], eax
mov ecx, ebx
call fcn.004162ae
mov edx, dword [esp + 0x2c]
mov esi, eax
push 8
push esi
mov ecx, edi
call fcn.00422b3d
mov edx, dword [esp + 0x28]
push dword [ebp + 8]
mov edx, dword [edx + 0x14]
mov ecx, edi
call fcn.00422738
add esp, 0xc
mov ecx, ebx
push 0
push dword [esp + 0x3c]
push 0
push 0x60
pop edx
call fcn.00416227
add esp, 0xc
mov ecx, edi
call fcn.00421961
mov edx, esi
mov ecx, ebx
call fcn.004162fe
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x40]
add eax, 0x28
dec dword [esp + 0x30]
mov dword [esp + 0x20], eax
jne 0x422332
mov ebx, dword [esp + 0x1c]
xor eax, eax
cmp dword [ebx + 0xc], eax
je 0x4223da
mov esi, dword [esp + 0x14]
push dword [ebp + 8]
inc dword [esi + 0x54]
mov edx, dword [ebx + 0xc]
mov ecx, esi
call fcn.00422738
pop ecx
mov ecx, esi
call fcn.00421961
mov esi, dword [esp + 0x24]
jmp 0x4223f0
mov esi, dword [esp + 0x24]
push eax
push dword [ebp + 8]
mov ecx, esi
push eax
push 0x77
pop edx
call fcn.00416227
add esp, 0xc
mov edx, dword [esp + 0x38]
mov ecx, esi
call fcn.004162fe
jmp 0x4226dc
movsx ecx, word [ebx + 0x1e]
mov edi, dword [ebx + 0x24]
imul ecx, ecx, 0x18
add ecx, dword [edi + 0x10]
cmp byte [edi], 0
jne 0x42241c
mov eax, dword [ecx + 0x10]
mov esi, eax
jmp 0x4226e0
cmp byte [edi + 1], 0
je 0x422459
push eax
push dword [ecx + 0xc]
push dword [edi + 4]
push 3
jmp 0x421c6e
mov eax, dword [ebx + 0x24]
test eax, eax
jne 0x42244a
push dword [ebx + 4]
push str.misuse_of_aggregate:__s__
push edx
call fcn.004090e9
jmp 0x421c76
movsx ecx, word [ebx + 0x1e]
mov eax, dword [eax + 0x20]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 8]
jmp 0x422415
cmp dword [ebx + 0x18], 0
jge 0x422468
movsx eax, word [ebx + 0x1c]
add eax, dword [edx + 0x50]
jmp 0x422415
movzx eax, word [ebx + 2]
mov edx, dword [ebx + 0x28]
mov ecx, dword [esp + 0x14]
and eax, 0x200
push eax
push dword [ebp + 8]
movsx eax, word [ebx + 0x1c]
push dword [ebx + 0x18]
push eax
call fcn.00421990
add esp, 0x10
jmp 0x422415
mov eax, dword [ecx + 8]
xor edx, edx
mov eax, dword [eax + 0xc]
mov dword [esp + 0x30], edx
mov al, byte [eax + 0x39]
mov byte [esp + 0x34], al
mov eax, 0x4000
mov dword [esp + 0x20], edx
test word [ebx + 2], ax
je 0x422510
mov dword [esp + 0x38], edx
mov edi, edx
mov ecx, dword [ebx + 4]
mov dword [esp + 0x1c], edi
call fcn.0040905a
push edx
push dword [esp + 0x38]
mov edx, ecx
mov ecx, dword [esp + 0x34]
push edi
push eax
call fcn.00428554
mov ecx, eax
mov eax, dword [esp + 0x48]
add esp, 0x10
mov dword [esp + 0x18], ecx
test eax, eax
je 0x42251f
mov edx, edi
mov edi, dword [esp + 0x14]
mov ecx, edi
call fcn.004231b9
mov edx, dword [esp + 0x38]
push 1
push eax
mov ecx, edi
mov dword [esp + 0x3c], eax
call fcn.00422885
mov eax, dword [esp + 0x40]
pop ecx
pop ecx
mov ecx, dword [esp + 0x18]
jmp 0x422528
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x38], eax
test eax, eax
je 0x4224b4
mov edi, dword [eax]
jmp 0x4224b6
and dword [esp + 0x34], 0
mov edi, dword [esp + 0x14]
cmp dword [esp + 0x1c], 2
jl 0x422553
test byte [ebx + 2], 0x80
je 0x422553
mov eax, dword [eax + 0xc]
mov ebx, dword [esp + 0x1c]
push dword [eax + 0x14]
mov edx, ecx
mov ecx, dword [esp + 0x30]
push ebx
call fcn.00436967
pop ecx
pop ecx
mov dword [esp + 0x18], eax
jmp 0x422566
mov ebx, dword [esp + 0x1c]
test ebx, ebx
jle 0x422562
mov eax, dword [eax + 0xc]
push dword [eax]
jmp 0x42253f
mov eax, dword [esp + 0x18]
xor ecx, ecx
mov dword [esp + 0x40], ecx
test ebx, ebx
jle 0x4225ec
mov esi, dword [esp + 0x38]
xor edx, edx
mov dword [esp + 0x1c], edx
cmp ecx, 0x20
jge 0x4225aa
mov eax, dword [esi + 0xc]
mov ecx, dword [esp + 0x1c]
xor edx, edx
mov ecx, dword [ecx + eax]
inc edx
call fcn.00420fb5
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x1c]
test eax, eax
je 0x4225a6
xor eax, eax
inc eax
shl eax, cl
or dword [esp + 0x30], eax
mov eax, dword [esp + 0x18]
test byte [eax + 3], 8
je 0x4225d8
cmp dword [esp + 0x20], 0
jne 0x4225d8
mov edx, dword [esi + 0xc]
mov ecx, dword [esp + 0x1c]
mov edx, dword [edx + ecx]
mov ecx, edi
call fcn.00420009
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x18]
inc ecx
add edx, 0x14
mov dword [esp + 0x40], ecx
mov dword [esp + 0x1c], edx
cmp ecx, ebx
jl 0x42257a
mov esi, dword [esp + 0x24]
test byte [eax + 3], 8
je 0x42262c
cmp dword [esp + 0x20], 0
jne 0x422604
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x20], eax
push 0
push 0
push 0
push 0xc
pop edx
mov ecx, esi
call fcn.00416227
add esp, 0xc
mov edx, eax
push 0xfffffffffffffffc
push dword [esp + 0x24]
mov ecx, esi
call fcn.00416610
mov eax, dword [esp + 0x20]
pop ecx
pop ecx
mov edi, dword [esp + 0x34]
push 0xfffffffffffffffb
push eax
push dword [ebp + 8]
mov ecx, esi
push edi
push dword [esp + 0x40]
push 0x16
pop edx
call fcn.0041627b
add esp, 0x14
mov dl, bl
mov ecx, esi
call fcn.0041652d
mov eax, dword [esp + 0x14]
test ebx, ebx
je 0x422664
cmp ebx, dword [eax + 0x38]
jle 0x422664
mov dword [eax + 0x38], ebx
mov dword [eax + 0x3c], edi
push ebx
mov edx, edi
mov ecx, eax
call fcn.00421aa4
jmp 0x4226db
mov eax, dword [ebx + 4]
cmp byte [eax + 1], 0
jne 0x4226af
or edx, 0xffffffff
mov ecx, esi
call fcn.0041672a
mov edx, eax
cmp byte [edx], 0x1b
jne 0x4226af
mov edi, dword [edx + 0xc]
mov ecx, dword [edx + 4]
add ecx, edi
cmp ecx, dword [ebx + 0x18]
jne 0x4226af
mov eax, dword [edx + 8]
add eax, edi
cmp eax, dword [ebp + 8]
jne 0x4226af
cmp dword [edx + 0x10], 0
jne 0x4226af
lea eax, [edi + 1]
mov dword [edx + 0xc], eax
jmp 0x4226dc
push 1
push dword [ebp + 8]
mov ecx, esi
push dword [ebx + 0x18]
push 0x1b
pop edx
call fcn.00416227
mov eax, dword [ebx + 4]
add esp, 0xc
cmp byte [eax + 1], 0
je 0x4226dc
push 0
push eax
or edx, 0xffffffff
mov ecx, esi
call fcn.00416610
pop ecx
pop ecx
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x14]
call fcn.00423185
mov edx, dword [esp + 0x44]
call fcn.00423185
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret